使用 C 11 进行基于范围的反向迭代
问题:
有办法吗反转基于范围的 for 循环的迭代器方向?目前,使用 rbegin() 和 rend() 转换具有显式迭代器的标准 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'; }
以上是C 11 基于范围的 For 循环可以反向迭代吗?的详细内容。更多信息请关注PHP中文网其他相关文章!