迭代器
迭代器:提供一种对对象的间接访问,就迭代器而言,其对象是容器中的元素或者string中的字符。
获取迭代器
有迭代器的类型同时拥有返回迭代器的成员,比如begin()
,end()
begin()
负责返回指向第一个元素的迭代器
end()
负责返回指向尾后迭代器。
迭代器运算符
迭代器使用==,!=比较是否相等,如果两个迭代器指向相同的成员或者都是同一个成员的尾后迭代器。
*iter 返回迭代器iter指向的引用
iter->mem 解应用iter并获取该元素名为mem的成员,等价于(*iter).mem
++iter/--iter 令iter指向容器中下/前一个元素
==/!= 迭代器相等/不等
示例code
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> vi;
for(int i=0;i<100;i++)
{
vi.push_back("abc" + to_string(i));
}
if (vi.begin() != vi.end())
{
auto it = vi.begin();
cout << "vi.begin:"<<*it <<endl;
}
for (auto it=vi.cbegin();it!=vi.cend();it++)
{
if(!(*it).empty())
{
cout << *it << endl;
cout << it->c_str() << endl;
}
}
std::cout << "Hello world" << std::endl;
return 0;
}
迭代器类型
iterator :
const_iterator:
如果容器对象为常量,则begin()返回const_iterator,否则返回iterator。