1

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

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

2 回答 2

5

中的每个条目Unordered_map都是一对,因此当您结合使用地图时,BOOST_FOREACH您将像这样迭代该对:

BOOST_FOREACH( HASH::value_type& v, myMap ) {
    std::cout << "key is " << v.first << " value is " << v.second << std::endl;      
}
于 2012-12-18T05:08:53.230 回答
0

刚刚解决了:

BOOST_FOREACH(HASH::value_type pair, myMap)
{
     U64 key = pair.first;
     U64 value = pair.second;
}
于 2012-12-18T05:08:47.137 回答