2012-11-16 32 views
1

我有一個:如何使用矢量<unsigned> V,爲關鍵,以搜索地圖

vector<unsigned> v; 

我如何使用數字/值向量作爲關鍵字來搜索一個

map <unsigned, unsigned>& mp 

地圖由

map.insert(pair<unsigned, unsigned>(v, sthelse)) 

從另一數據集形成。

+4

'map.find(V [0])'? – hmjd

+2

僅供參考,而不是std :: pair (var,var)你可以做std :: make_pair(var,var)。 – Cogwheel

回答

1

您不能使用vector<unsigned>作爲搜索map<unsigned, unsigned>的關鍵。作爲map<>指示的第一個模板參數,密鑰的類型爲unsigned,而不是vector<unsigned>

可以使用成員向量的作爲鍵來搜索地圖,像這樣:

for(i = 0; i < v.size(); ++i) { 
    auto it = mp.find(v[i]); 
    if(it != mp.end()) { 
    std::cout << "Look, Martha, we caught one! " << it->second << "\n"; 
} 
+0

http://stackoverflow.com/questions/13423753/how-to-use-a-vectorunsigned-v-as-the-key-to-search-a-map非常感謝! – user1830108