C++学习笔记30——反向迭代器
来源:互联网 发布:matlab迭代算法 编辑:程序博客网 时间:2024/06/07 03:36
1,反向迭代器的概念
向后遍历序列的迭代器。这些迭代器颠倒了++和--的含义。
类型为: std::reverse_iterator
头文件:
#include <iterator>
容器操作也会提供反向迭代器rend和rbegin,其与end和begin的关系如下图所示:
rbegin指向最后一个元素;rend指向第一个元素前面的位置。
2,反向迭代器的成员函数
(constructor) 构造一个新的迭代器适配器
operator= 赋值
base accesses the underlying iterator 转换为正常迭代器,注意转换后指向的是下一位置的元素
operator* 解引用,获取指向的值
operator->
operator[] 通过下标获取元素
++, ++(int) advances or decrements the iterator
+=, +,
--, --(int),
-=, -
存疑:++与 ++(int) 有什么区别?
请注意base的位置发生了后移。
3,反向迭代器的用法
将反向迭代器赋值给find()函数,就变成了从后向前查找。
注意,当给find输入反向迭代器后,find返回的也是反向迭代器。
且不能直接将反向迭代器赋值给普通的迭代器。
如下示例为查找序列中最后一个为0的元素:
list<int> ilst = {520, 3132, 0, 3, 5, 9, 0, 8, 7};list<int> ::reverse_iterator r_iter = find(ilst.rbegin(), ilst.rend(), 0);for (list<int> ::iterator iter = --r_iter.base(); iter != ilst.end(); iter++){cout << *iter << endl;}输出的是最后一个0到序列末尾的所有元素。
请注意base的位置发生了后移。
0 0
- C++学习笔记30——反向迭代器
- Caffe学习笔记—Caffe反向传播计算
- Nginx学习—反向代理
- 《信息论,推理和学习算法》学习笔记——概率,前向概率,反向概率
- OpenCV学习笔记--反向投影
- listIterator反向遍历学习笔记
- 深度学习笔记---反向传播
- 神经网络笔记——反向传播算法
- C++—STL学习笔记
- 深度学习笔记:稀疏自编码器(2)——反向传导
- PHP 开发学习[10] —— Nginx反向代理 实例操作笔记
- 深度学习笔记(3)——CNN中一些特殊环节的反向传播
- 神经网络与深度学习笔记——第2章 反向传播算法
- 机器学习学习笔记--反向传播神经网络
- OpenCV 2 学习笔记(18): 反向投影
- 深度学习笔记2:反向传播算法
- 【Deep Learning学习笔记】反向传播神经网络
- opencv学习笔记(三十)反向投影
- iOS开发50-iOS Mac OS X Spark的使用
- PopupWindow使用总结
- 旅游评论数据中的自然语言处理
- 【ITOO】--框架搭建
- Eeny Meeny Moo 【 约瑟夫问题】
- C++学习笔记30——反向迭代器
- 字符函数
- Fragment中得到Activity资源
- android Gson的使用
- 数组与指针定义字符串的区别(即char[]与char*)
- SSH连接问题
- Java常用开发工具
- Mac、CentOS jdk安装及版本切换
- 让android定时关机的实现方法