我正在尝试创建一个 SetUnion 函数,它接受两个set<int>
元素并将它们联合起来。
SetUnion: set<int> × set<int> → set<int>
任何帮助表示赞赏。
我正在尝试创建一个 SetUnion 函数,它接受两个set<int>
元素并将它们联合起来。
SetUnion: set<int> × set<int> → set<int>
任何帮助表示赞赏。
由于您正在处理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());
此函数已存在于标准库中,请参阅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,