2013-06-03 111 views
-4

我试图创建一个SetUnion函数,它需要两个set<int>元素和它们的联合。SetUnion:设置<int>×设置<int>→设置<int>

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

任何帮助表示赞赏。

+0

什么给?谁没有解释就递减? – Trancot

+1

试着用你自己的双手去做,当你有一个真实的和具体的问题时回来。 – Elazar

+4

我猜是因为你没有展示你已经尝试过的东西。那么['set_union'](http://en.cppreference.com/w/cpp/algorithm/set_union)? – dyp

回答

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

该功能已经在标准库中存在,看到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,