C 11 の範囲ベースの for 構文を理解する
C 11 の範囲ベースの for ループは、コンテナーを反復するための簡略化された構文を提供します。構文は、コンテナの要素を観察するか変更するかによって異なります。
要素を観察する場合
要素を変更せずに観察するには、推奨される構文は次のとおりです。
for (const auto& elem : container)
この構文は const 参照によって要素をキャプチャし、次のような場合に不要なコピーを回避します。オブジェクトのコピーにはコストがかかります。
要素を変更する場合
要素をその場で変更する必要がある場合の構文は次のとおりです。
for (auto& elem : container)
これ構文は非 const 参照によって要素をキャプチャし、ループ内で要素を変更できるようにします。 body.
特殊なケース: プロキシ イテレータ
ただし、プロキシ イテレータ (std::vector
for (auto&& elem : container)
この構文ではプロキシ反復子を正しく動作させるための「&&」型修飾子。
概要
以上が適切な C 11 範囲ベースの「for」ループ構文を選択するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。