gcc C++のマップを逆に反復するのに問題があります。逆の反復子を使うと、何かを割り当てることができないようだ。コンパイラは不平を言う。私は順方向イテレータを使用していくつかの厄介なコードでそれを回避しようとしていますが、あまりエレガントではありません。何かご意見は?C++のマップを逆に反復する方法
17
A
答えて
36
はここstd::map
を逆方向に反復処理の例です:
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<std::string, std::string> m;
m["a"] = "1";
m["b"] = "2";
m["c"] = "3";
for (auto iter = m.rbegin(); iter != m.rend(); ++iter) {
std::cout << iter->first << ": " << iter->second << std::endl;
}
}
あなたは事前にC++ 11であれば、あなたがある、auto
を綴るするだけ必要があります:
std::map<std::string, std::string>::reverse_iterator
ブーストを使用している場合は、逆アダプタで範囲ベースのforループを使用できます。
#include <boost/range/adaptor/reversed.hpp>
for (auto& iter : boost::adaptors::reverse(m)) {
std::cout << iter.first << ": " << iter.second << std::endl;
}
関連する問題
- 1. マップC++を反復する
- 2. このJSONを反復でマップして反復する方法
- 3. immutablejsのマップを反復する方法
- 4. C++のSTLマップのサブセットを反復する方法
- 5. mvelでマップを反復する方法
- 6. C++順方向反復と逆方向反復の切り替え
- 7. LinkedList要素を逆順に反復処理する方法は?
- 8. cython - C++リストを反復する方法
- 9. OrderedDictionaryで逆順に反復する方法
- 10. 逆反復算術
- 11. QValueList逆反復子
- 12. xmlファイルを反復してマップに保存する方法
- 13. BIRTのスクリプトデータソースのマップを反復する方法
- 14. c#逆の順序でハッシュテーブルを反復する
- 15. Pythonでマップの要素を反復する方法
- 16. C#反復タグを使用してXMLを逆シリアル化する
- 17. javascriptで逆の順序でセットまたはマップを反復処理する方法はありますか?
- 18. XmlNodeListの最後の4つのアイテムを逆に反復する方法
- 19. Jenkinsfileでマップを定義して反復する方法
- 20. C++ - 3要素のマップを反復する
- 21. ベクトルのマップを反復する
- 22. Haskell - リスト要素を逆順にエレメントで反復する方法は?
- 23. Pythonのマップ機能反復
- 24. C++のLPBYTEの各バイトを反復する方法
- 25. C#で辞書<string、string>を逆順(最後から最初)に反復する方法は?
- 26. C++のテンプレート反復子、逆参照、およびtypedef
- 27. NEXT反復の「続行」を停止する方法c#
- 28. C#のLINQでリストを反復する方法
- 29. C#PSObjectを反復する
- 30. クラスオブジェクトを含むC++でのマップの反復
あなたが話してくれなかったことは、あなたがしたいことです。 – tpdi
リバースイテレーターを使用していても、rbeginとrendではなくbeginとendを呼び出しているようなサウンドです。 GManのソリューションは、あなたが探しているものかもしれません。しかし、いくつかのコードを投稿すると、私たちがあなたを助けるのに役立ちます。 – Smashery
ありがとうございました - 私はrbegin/rendを試したと思っていましたが、なんとか自分が絡んでいるはずです。 –