Если у меня есть два набора данных
set<string> A;
set<string> B;
использовать set_intersection Я могу получить данные в части пересечения для двух наборов.
Как распечатать данные в непересекающейся части для набора A и набора B, соответственно?
использование std::set_difference
или же std::set_symmetric_difference
, в зависимости от ваших потребностей.
(Я слишком устал / ленив, чтобы писать пример, но, надеюсь, это станет очевидным после прочтения вышеуказанных ссылок!)
set_symmetric_difference
помещает результаты в некоторый повторяемый объект.
Таким образом, вы можете скопировать значения в ostream
оборачивая его ostream_iterator
:
set<string> a;
set<string> b;
set_symmetric_difference(a.begin(), a.end(),
b.begin(), b.end(),
ostream_iterator<string>(cout, "\n"));