2013-06-03 116 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,