ホームページ >バックエンド開発 >C++ >C 11 範囲ベースの For ループを使用してコンテナーを簡単に逆反復するにはどうすればよいですか?

C 11 範囲ベースの For ループを使用してコンテナーを簡単に逆反復するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-02 15:58:10924ブラウズ

How Can I Easily Reverse Iterate Through a Container Using C  11 Range-Based For-Loops?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。