好的,这就是我的情况-非常简单,但是我不确定它如何工作(我找不到任何文档...):

我有一个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];
}

有任何想法吗?

最佳答案

Unordered_map中的每个条目都是一对,因此当您将 map 与BOOST_FOREACH结合使用时,您将在该对上进行迭代,如下所示:

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

08-24 18:42