2012-07-05 47 views
2

可能重複集:
How to do the vector of sets in C++?向量在C++

我希望有不同層次的是在我的代碼集。每個級別的集合都將保存整數值。這些集合的數量應該是動態的,取決於所需級別的數量(作爲輸入給出)。

爲此,我想擁有一個動態集合結構。我怎樣才能做到這一點?我是否可以根據需要去尋找具有指向集合的指針的向量?我如何實現這一目標?還有其他方法嗎?

有人可以給我一個片段嗎?

回答

7
vector<set<int> > my_sets; 

將一個元素增加到第i組:

int number; 
//... 
my_sets[i].insert(number); 

在搜索一個元件的第i個組:

if(my_sets[i].find(number) != my_sets[i].end()) 
{ 
     // Number found 
} 

遍歷第i組:

for(set<int> :: iterator it = my_sets[i].begin(); it != my_sets[i].end();++it) 
{ 
    // do something with integer value *it 
} 

添加新集:

set<int> temp; 
temp.insert(a);temp.insert(b);//... 
my_sets.push_back(temp); 

擦除第i個組:

my_sets.erase(my_sets.begin() + i); 
2

套的矢量只是std::vector<std::set<type>>。你在找別的東西嗎?

+0

我如何從媒介訪問每套? –