C++ 在集合的非交点处打印数据<;字符串>;A、 设置<;字符串>;B

C++ 在集合的非交点处打印数据<;字符串>;A、 设置<;字符串>;B,c++,set,set-intersection,C++,Set,Set Intersection,如果我有两组数据 set<string> A; set<string> B; 设置A; B组; 使用set_intersection,我可以获得两个集合的交点部分的数据 如何分别打印集合A和集合B的非交叉部分中的数据?根据需要使用或 (我太累/懒得写一个例子,但希望在你阅读了上面的链接后,它应该是显而易见的!)根据你的需要使用或 (我太累了/懒得写一个例子,但希望在阅读了上面的链接后,它应该是显而易见的!)set\u symmetric\u difference将结果

如果我有两组数据

set<string> A;
set<string> B;
设置A;
B组;
使用set_intersection,我可以获得两个集合的交点部分的数据

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

根据需要使用或

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

根据你的需要使用或


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

set\u symmetric\u difference
将结果放入某个合适的对象中

因此,您可以使用
ostream\u迭代器将值包装到
ostream
中:

set<string> a;
set<string> b;

set_symmetric_difference(a.begin(), a.end(),
                         b.begin(), b.end(),
                         ostream_iterator<string>(cout, "\n"));
设置a;
b组;
设置对称差异(a.开始(),a.结束(),
b、 begin(),b.end(),
ostream_迭代器(cout,“\n”);

set\u symmetric\u difference
将结果放入某个可编辑对象中

因此,您可以使用
ostream\u迭代器将值包装到
ostream
中:

set<string> a;
set<string> b;

set_symmetric_difference(a.begin(), a.end(),
                         b.begin(), b.end(),
                         ostream_iterator<string>(cout, "\n"));
设置a;
b组;
设置对称差异(a.开始(),a.结束(),
b、 begin(),b.end(),
ostream_迭代器(cout,“\n”);

set_difference将为您提供结果A+B-(AB),获得A-(AB)和B-(AB)的方法是什么//(AB)=交叉点…这是否意味着集合对称差?@user1830108:听起来像集合对称差的描述。所以你可能想要设置差异。问题不在于打印数据吗?@PeterWood:再看一眼,是的。但是我假设集合运算是一个棘手的部分…集合_差会给你结果A+B-(AB),得到A-(AB)和B-(AB)的方法是什么//(AB)=交叉点…这是否意味着集合对称差?@user1830108:听起来像集合对称差的描述。所以你可能想要设置差异。问题不在于打印数据吗?@PeterWood:再看一眼,是的。但我认为集合运算是个棘手的部分。。。