C 11 Boost を使用した逆レンジベースの For ループ
コンテナーの逆順の反復は、専用のコンテナー アダプターを使用して実現できます。イテレータの方向を反転します。これにより、範囲ベースの for ループの利便性を利用して逆反復を実装できるようになります。
幸いなことに、Boost はそのようなアダプター boost::adaptors::reverse を提供します。このアダプターは、コンテナーを入力として受け取り、逆反復子を持つ新しいコンテナーアダプターを返します。
その使用法を示すために、次の例を考えてみましょう。
#include <list> #include <iostream> #include <boost/range/adaptor/reversed.hpp> int main() { std::list<int> x = {2, 3, 5, 7, 11, 13, 17, 19}; for (auto i : boost::adaptors::reverse(x)) std::cout << i << '\n'; for (auto i : x) std::cout << i << '\n'; }
このコードは、まず、次のリスト x を作成します。整数。次に、boost::adaptors::reverse(x) アダプターを使用して、リストを逆順に反復処理します。比較のために元の順序に続いて逆の順序で要素を出力します。
プログラムの出力は次のとおりです。
19 17 13 11 7 5 3 2 2 3 5 7 11 13 17 19
これは、Boost boost::adaptors の機能を示しています。 :reverse アダプターはイテレーターの方向を反転し、C の範囲ベースの for ループで便利な逆反復を可能にします。
以上がC 11 で Boost::adaptors::reverse で逆範囲ベースの For ループを有効にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。