c ++从另外两个集合形成

时间:2012-02-22 12:17:36

标签: c++ stl set

我有两套琴弦。

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

我会在这两个集合中插入一些元素,并且我插入其中的一些元素是常见元素。

我基本上可以获得元素

  • 出现在A而不是B
  • 出现在B而非A

使用

std::set_difference

我也可以通过

获取两个集合中的共同元素

使用

std::set_intersection

如何只在A 和中仅在B 中获取和显示的元素并将它们放在不同的集合中?

总的想法是创建一个集合,它不具有公共元素,而是两个集合中的所有元素。

用数学语言:

(A(UNION)B)-(A(intersection)B)

2 个答案:

答案 0 :(得分:2)

std::set_symmetric_difference怎么样?它似乎符合你的要求。

答案 1 :(得分:1)

您可以使用set_symmetric_difference