如何根据两个集合的对称差创建 std::set

问题描述 投票:0回答:2

我有两套琴弦。

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

我将在这两个集合中插入一些元素,并且我插入其中的一些元素是公共元素。

基本都能拿到要素

  • 存在于 A 中而不存在于 B
  • 存在于 B 而非 A

使用

std::set_difference

我还可以通过

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

使用

std::set_intersection

如何获取 only 在 Aonly 在 B 中存在的元素并将它们放入不同的集合中?

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

用数学语言来说:

(A(UNION)B)-(A(intersection)B)
c++ stl set
2个回答
2
投票

std::set_symmetric_difference
怎么样?看起来很符合你的要求。


1
投票

您可以使用set_symmetry_difference

© www.soinside.com 2019 - 2024. All rights reserved.