我试图创建一个SetUnion函数,它需要两个set<int>
元素和它们的联合。SetUnion:设置<int>×设置<int>→设置<int>
SetUnion: set<int> × set<int> → set<int>
任何帮助表示赞赏。
我试图创建一个SetUnion函数,它需要两个set<int>
元素和它们的联合。SetUnion:设置<int>×设置<int>→设置<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,
什么给?谁没有解释就递减? – Trancot
试着用你自己的双手去做,当你有一个真实的和具体的问题时回来。 – Elazar
我猜是因为你没有展示你已经尝试过的东西。那么['set_union'](http://en.cppreference.com/w/cpp/algorithm/set_union)? – dyp