当前位置:网站首页>STL迭代器
STL迭代器
2022-08-03 06:34:00 【干饭小白】
迭代器的基本原理
- 迭代器是一个"可遍历STL容器内部分或全部元素"的对象
- 迭代器指出容器中的一个特定位置
- 迭代器就如同一个指针
- 迭代器提供对一个容器中的对象的访问方法,并且可以定义容器中对象的范围
- 迭代器就像一个指针
迭代器的分类
输入迭代器:
又称为"只读迭代器",它从容器中读取元素,只能一次读入一个元素向前移动,只支持一遍算法,同一个输入迭代器不能两遍遍历一个序列。
输出迭代器:
又称为"只写迭代器",它往容器中写入元素,只能一次写入一个元素向前移动,同一个输出迭代器不能两边遍历一个序列。
正向迭代器:
组合输入迭代器和输出迭代器的功能,还可以多次解析一个迭代器指定位置,可以对一个值进行多次读/写
双向迭代器:
组合正向迭代器的功能,还可以通过操作符向后移动位置
随机访问迭代器:
组合双向迭代器的功能,还可以向前向后跳过任意个位置,可以直接访问容器中任何位置的元素
双向迭代只能一步一步的走,随机迭代器可以跨很多步走
vector与迭代器的配合使用
vector<int> vecInt; //假设包含1,3,5,7,9元素
vector<int>::iterator it; //声明容器vector<int>迭代器
it = vecInt.begin();
it++ it+=2....
//正向遍历
vector<int> vecInt;
for(vector<int>::iterator it=vecInt.begin();it!=vecInt.end();++it)
{
int tmp = *it;
cout<<tmp<<"\t";
}
//逆向遍历
for(vector<int>::reverse_iterator it=vecInt.rbegin();it!=vecInt.rend(),++it)
{
int tmp;
cout<<tmp<<"\t";
}
deque容器与迭代器
deque.begin(); //返回容器中第一个元素的迭代器
deque.end(); //返回容器中最后一个元素之后的迭代器
deque.rbegin(); //返回容器中倒数第一个元素的迭代器
deque.rend(); //返回容器中倒数最后一个元素之后的迭代器
for(deque<int>::iterator it=deqInt.begin();it!=deqInt.end(),++it)
{
cout<<*it;
cout<<"";
}
for(deque<int>::reverse_iterator rit=deqInt.rbegin();rit!=deque.rend();++rit)
{
cout<<*rit;
cout<<"";
}
边栏推荐
猜你喜欢
随机推荐
华为设备配置BFD状态与接口状态联动
El - table column filter functions, control columns show and hide (effect and easy to implement full marks)
MYSQL存储过程注释详解
一文搞懂什么是@Component和@Bean注解以及如何使用
CISP-PTE Zhenti Demonstration
postman将接口返回结果生成csv文件到本地
Laravel 中使用子查询
(十五)51单片机——呼吸灯与直流电机调速(PWM)
请手撸5种常见限流算法!面试必备
MySQL 流程控制
mysql or语句的优化
qt学习之旅--MinGW32编译opencv3.0.0
spark中Repartition 和 Coalesce 区别
MySQL必知必会
MySQL日期和时间戳的转换
调用feign报错openfeign/feign-core/10.4.0/feign-core-10.4.0.jar
excel高级绘图技巧100讲(二十一)- Excel层叠柱形图
hashSet解析
El - tree set using setCheckedNodessetCheckedKeys default check nodes, and a new check through setChecked specified node
FiBiNet torch reproduction