私は最近、将来の使用のために事前に勉強していたサンプルコードを見てきました。以前に研究された。しかし、私は何とか複製するコードを生成することに失敗しました。for(auto &it : iostr)
は何をしますか?誰かがこれが何をしているのか説明できますかコードブロック "for(auto&it:iostr)"を説明してください
0
A
答えて
4
これはC++ 11で導入されたrange-based for
です。
iostr
という表現では、begin(iostr)
〜end(iostr)
で指定されているように、iostr
のすべての項目をループします。
あなたの例では、ループ変数としてauto &it
を使用して、各項目に対してit
(この名前はおそらく誤称です!)がその項目にバインドされ、ループボディがそのバインディングで実行されます。 it
をitem
に改名する方が良いでしょう。またはch
、またはそれが何であってもiostr
が含まれます。
0
これは、iostr
の要素をループします。(あなたが使用しての習慣に取得する必要があります)this excellent referenceパー
、この構築物は、現在とまったく同じです:
この場合{
auto && __range = iostr;
for (auto __begin = std::begin(__range), __end = std::end(__range);
__begin != __end;
++__begin) {
auto& it = *__begin;
// (your loop body here)
}
}
あるいは、もっと単純に:
for (auto __begin = std::begin(iostr), __end = std::end(iostr);
__begin != __end;
++__begin) {
auto& it = *__begin;
// (your loop body here)
}
ので、 C++ 17の場合、と__end
がどのように宣言されているのかが若干変更されています(ただし、!=
を使用して比較できる限り)。それはドキュメントに書かれています。
関連する問題
- 1. parentNodeを説明してください
- 2. Pythonコード:説明してください
- 3. 明確な例でAngularJS $ injectorを説明してください
- 4. C#のプロパティのしくみを説明してください。
- 5. 次のコードを詳しく説明してください
- 6. このC++ forループ、iside a forループについて説明してください。更新2
- 7. DSMについて簡単に説明してください。
- 8. このjQueryセレクターについて説明してください。
- 9. 雑音ハッシュについて説明してください。
- 10. 以下のコードの違いを説明してください。
- 11. スケーラでAbstractfunction1の使い方を説明してください
- 12. awakeFromNib、initwithFrameの使い方を説明してください
- 13. この短いSQLクエリを説明してください
- 14. regsubの呼び出しを説明してください
- 15. bashのヒントを説明してください
- 16. Apache Beamのpythonの構文を説明してください
- 17. この比較方法を説明してください。
- 18. このスクリプトの段階を説明してください
- 19. Bluezアーキテクチャ:このアーキテクチャを説明してください
- 20. mysqlのコマンドを説明してください
- 21. ExtJs loadRecordメソッドを説明してください
- 22. caffeの無音レイヤーを説明してください
- 23. continueステートメントを説明してください
- 24. この出力を説明してください。
- 25. Wordpressでのカテゴリの説明を参照してください。
- 26. オフィスサーバのdefault.jsonのパラメータを説明してください
- 27. 以下のプログラムの出力を説明してください
- 28. このjQueryステートメントを説明してください
- 29. ハフ変換を説明してください
- 30. このGoogleスクリプトを説明してください
[範囲ベースforループ](http://en.cppreference.com/w/cpp/language/range-for)。 – songyuanyao
@songyuanyao私は、この質問は重複していないように思っています。 –