当前位置:网站首页>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<<"";
}边栏推荐
猜你喜欢
随机推荐
C语言入门实战(14):选择排序
Spark 的架构与作业提交流程
El - tree set using setCheckedNodessetCheckedKeys default check nodes, and a new check through setChecked specified node
mysql or语句的优化
Example of embedding code for continuous features
El - table column filter functions, control columns show and hide (effect and easy to implement full marks)
nacos-2.0.3启动报错出现no datasource set的坑
PHP 获取服务器信息
Week5
CDGA|如何加强数字政府建设?
力扣解法汇总622-设计循环队列
【着色器实现HandDrawn简笔画抖动效果_Shader效果第十二篇】
QT信号与槽
DIFM network, rounding and repetition
mongodb的shell脚本
torch.nn.modules.activation.ReLU is not a Module subclass
boot - SSE
excel高级绘图技巧100讲(二十一)- Excel层叠柱形图
El - tree to set focus on selected highlight highlighting, the selected node deepen background and change the font color, etc
关于Attention的超详细讲解









