-4

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

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

任何帮助表示赞赏。

4

2 回答 2

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());

这是关于 ideone 的演示

于 2013-06-03T00:21:46.727 回答
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, 
于 2013-06-03T00:20:00.773 回答