一、迭代器范围
一个迭代器范围由一对迭代器表示,两个迭代器分别指向同一个容器中的第一个元素和尾元素之后的位置,分别称为begin和end。
如果begin与end相等,那么范围为空
如果begin与end不等,那么容器中至少有一个元素,且begin指向该范围内第一个元素。
int main()
{
while(begin!=end)
{
*begin = val;
++begin;
}
}
反向迭代器,执行++操作,会到达上一个容器元素
#include<iostream>
#include<vector>
#include<list>
using namespace std;
int main()
{
list<string> a{ "aaa", "bbb", "ccc" };
auto it1 = a.begin();
list<string>::iterator it1 = a.begin();
auto it2 = a.rbegin();
list<string>::reverse_iterator it2 = a.rbegin();
auto it3 = a.cbegin();
list<string>::const_iterator it3 = a.cbegin();
auto it4 = a.crbegin();
list<string>::const_reverse_iterator it4 = a.crbegin();
return 0;
}
二、再探迭代器
除了为每个容器定义的迭代器之外,标准库在头文件iterator中还定义了额外几种迭代器
insert_iterator 插入迭代器
stream iterator 流迭代器
reverse iterator 反向迭代器
move iterator 移动迭代器
插入迭代器:
本质上是一个迭代器适配器,接受一个容器,生成一个迭代器,向给定容器添加元素
it = t 在it指定的当前位置插入值t,假定c是it绑定的容器,依赖于插入迭代器的不同种类
待续。。。。。。。。