2012-12-18 23 views
1

好了,這裏是我的情況 - 很簡單,但我不知道它如何能工作(我找不到任何文檔......):如何將BOOST_FOREACH與Unordered_map一起使用?

我有一個Unordered_map

typedef unsigned long long U64; 
typedef boost::unordered_map<U64, U64> HASH; 

而且我想通過要素(主要是鍵),很像使用PHP foreach循環,但這次使用BOOST_FOREACH,我懷疑是這樣的:

HASH myMap; 

// .. assignment, etc... 

BOOST_FOREACH (U64 key, myMap) 
{ 
    // do sth with the Key-Value pair 

    U64 val = myMap[key]; 
} 

有什麼想法?

回答

4

Unordered_map每件參賽作品是一對,所以當你一起選擇使用地圖與BOOST_FOREACH你會遍歷那雙像這樣:

BOOST_FOREACH(HASH::value_type& v, myMap) { 
    std::cout << "key is " << v.first << " value is " << v.second << std::endl;  
} 
0

就解決了這個問題:

BOOST_FOREACH(HASH::value_type pair, myMap) 
{ 
    U64 key = pair.first; 
    U64 value = pair.second; 
} 
相關問題