首页 > 后端开发 > C++ > Boost::adaptors::reverse 如何在 C 11 中启用基于范围的反向 For 循环?

Boost::adaptors::reverse 如何在 C 11 中启用基于范围的反向 For 循环?

Barbara Streisand
发布: 2024-12-03 03:02:10
原创
940 人浏览过

How Can Boost::adaptors::reverse Enable Reverse Range-Based For-Loops in C  11?

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 循环进行方便的反向迭代。

以上是Boost::adaptors::reverse 如何在 C 11 中启用基于范围的反向 For 循环?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板