Сравнение множеств С++

void compareset(set<string> A, set<string> B) {
    vector <string> H;
    set<string> ::iterator it1; // объявляем итератор
    set<string> ::iterator it2;
    
    for (it1 = A.begin(),it2 = B.begin(); it1 != A.end() && it2 != B.end(); ++it1, ++it2) // пока итератор не достигнет последнего элемента
    {
        if (*it1==*it2) H.push_back(*it1);// и переходим к следующему элементу
        ;
    }
    for (string i : H) {
        cout << i;
    }
    
}

Мне нужно сделать функцию,которая сравнивает два множества(set) и в вектор записывает общие элементы.Желательно не использовать методы по типу intersection,find,count и тд.Мне нужно вручную с помощью итераторов это сделать.У меня не особо получается...


Ответы (1 шт):

Автор решения: Qwertiy

По идее, должно работать вот так:

for (auto &x : A)
  if (B.count(x))
    H.push_back(x);
→ Ссылка