如何使用BOOST_FOREACH与Unordered_map?(How to use BOOST_

2019-10-17 11:48发布

好了,这里是我的情况 - 很简单,但我不知道它如何能工作(我能找到任何没有文档......):

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

有任何想法吗?

Answer 1:

在每个条目Unordered_map将是一对,所以当你一起选择使用地图与BOOST_FOREACH你会遍历那双像这样:

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


Answer 2:

只要解决了它:

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


文章来源: How to use BOOST_FOREACH with an Unordered_map?