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