好的,所以这是我的情况 - 非常简单,但我不确定它是如何工作的(我找不到任何文件......):
我有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];
}
有什么想法吗?
答案 0 :(得分:5)
Unordered_map
中的每个条目都是一对,因此当您将地图与BOOST_FOREACH
结合使用时,您将按照以下方式迭代该对:
BOOST_FOREACH( HASH::value_type& v, myMap ) {
std::cout << "key is " << v.first << " value is " << v.second << std::endl;
}
答案 1 :(得分:0)
刚刚解决了它:
BOOST_FOREACH(HASH::value_type pair, myMap)
{
U64 key = pair.first;
U64 value = pair.second;
}