C 11 反向基于范围的 For 循环
使用基于范围的 for 循环以相反的顺序迭代容器需要反转迭代器的方向。虽然显式迭代器提供了一个简单的解决方案,但是是否有一个方便的容器适配器可以提供此功能?
反向迭代器适配器
幸运的是,Boost 库包含一个解决方案: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中文网其他相关文章!