C 11 逆範囲ベースの For ループ
範囲ベースの for ループを使用してコンテナを逆の順序で反復するには、イテレータの方向。明示的なイテレータは簡単な解決策を提供しますが、この機能を提供する便利なコンテナ アダプタはありますか?
Reverse Iterator Adapter
幸いなことに、Boost ライブラリには解決策が含まれています。 ::アダプター::リバース。このアダプターはコンテナーの反復順序を逆にし、範囲ベースの for ループを逆方向に反復できるようにします。
使用例
整数のコンテナーを考えてみましょう:
std::list<int> x { 2, 3, 5, 7, 11, 13, 17, 19 };
範囲ベースの for ループを使用してこのコンテナを逆に反復するには、リバースを使用しますアダプター:
for (auto i : boost::adaptors::reverse(x)) std::cout << i << '\n';
これにより、リストの要素が逆の順序で出力されます。
元の反復との比較
比較については、次のとおりです。逆アダプターを使用しない元の反復順序:
for (auto i : x) std::cout << i << '\n';
これにより、リストの要素が出力されます。
結論
Boost のリバース アダプターは、範囲ベースの for ループを使用して、コンテナーを逆の順序で反復する便利な方法を提供します。これによりコードが簡素化され、より簡潔で効率的な逆反復が可能になります。
以上がC 11 範囲ベースの For ループを使用してコンテナーを簡単に逆反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。