0

如果我有两组数据

set<string> A;
set<string> B;

使用 set_intersection 我可以获取两个集合的交集部分的数据。

如何分别打印出集合 A 和集合 B 的非交集部分的数据?

4

2 回答 2

4

使用std::set_differencestd::set_symmetric_difference,具体取决于您的需要。

(我太累/懒得写一个例子,但希望一旦你阅读了上面的链接,它应该是显而易见的!)

于 2013-01-04T20:37:54.153 回答
1

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"));
于 2013-01-05T13:28:23.537 回答