在集合 <string> A 和集合<string>B 的非交集中打印出数据

print out data in the non-intersection for set <string> A, set<string>B

本文关键字:gt string lt 集合 集中 打印 数据      更新时间:2023-10-16

如果我有两组数据

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

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

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

根据您的需要使用std::set_differencestd::set_symmetric_difference

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

set_symmetric_difference将结果放入某个可迭代对象。

因此,您可以通过使用ostream_iterator包装将值复制到ostream中:

set<string> a;
set<string> b;
set_symmetric_difference(a.begin(), a.end(),
                         b.begin(), b.end(),
                         ostream_iterator<string>(cout, "n"));