1

OK、これが私の状況です-かなり簡単ですが、それがどのように機能するかわかりません(ドキュメントがまったく見つかりません...):

私は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 に答える