如果我有两组数据
set<string> A;
set<string> B;
使用 set_intersection 我可以获取两个集合的交集部分的数据。
如何分别打印出集合 A 和集合 B 的非交集部分的数据?
如果我有两组数据
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"));