SetUnion:set <int>×set <int>→set <int> </int> </int> </int>

时间:2013-06-03 00:14:30

标签: c++

我正在尝试创建一个SetUnion函数,该函数需要两个set<int>个元素并将它们联合起来。

SetUnion: set<int> × set<int> → set<int>

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

由于您正在处理std::set,因此可以通过简单地将两个集合的元素添加到一起来构建联合,如下所示:

set<int> a {1,2,3,4};
set<int> b {3,4,5,6};
// Copy the first set
set<int> u(a);
// Add elements of the second set to the copy to get a union
u.insert(b.begin(), b.end());

这是demo on ideone

答案 1 :(得分:1)

此功能已存在于标准库中,请参阅std::set_union,您可以按如下方式使用:

std::vector<int> vec1 = {1, 2, 4}, vec2 = {5, 4, 2}, vecUnion;

std::set_union( vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), std::back_inserter(vecUnion) );

for( auto i : vecUnion )
{
     std::cout << i << ", " std::endl;
}

将打印出以下内容:

1, 2, 4, 5,