ホームページ > バックエンド開発 > C++ > C 11 範囲ベースの For ループは逆に反復できますか?

C 11 範囲ベースの For ループは逆に反復できますか?

DDD
リリース: 2024-12-12 22:02:17
オリジナル
546 人が閲覧しました

Can C  11 Range-Based For Loops Iterate in Reverse?

C 11 による範囲ベースの逆反復

質問:

方法はありますか範囲ベースの for ループのイテレータの方向を逆にするには?現在、rbegin() と rend() を使用して明示的なイテレータを含む標準の for ループを変換することは可能ですが、範囲ベースのバージョンに類似した構文を使用する方が有利です。

答え:

Boost は、カスタム アダプターを作成するのではなく、次のような便利なソリューションを提供します。ブースト::アダプター::リバース。このアダプターは、反復中に要素の順序を逆にします。

使用例:

#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';
}
ログイン後にコピー

以上がC 11 範囲ベースの For ループは逆に反復できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート