迭代器,可以看做是普通的指针
选取迭代器不是使用取地址值,有迭代器的类型同时拥有返回迭代器的成员.比如begin
和end
begin
指向第一个元素的迭代器
end
指向尾元素的下一位置
auto b = v.begin(),
auto
关键字就是类里面封装的迭代类型.
迭代器运算符 | 描述 |
---|---|
*iter | 返回迭代器的引用 |
iter->mem | 获取该元素的mem成员,等价于(*iter).mem |
iter++ | 指向下一个元素 |
--iter | 指向上一个元素 |
iter1==iter2 | 判断是否相同 |
循环的三种方式:
1.下标
2.指针
int array[5] = { 1, 2, 3, 4, 5 };
int * p = array; //指针指向数组首地址 &array[0]
for (int i = 0; i < 5;i ++)
{
//cout << array[i] << endl;
cout << *(p++) << endl;
}
3.迭代器
for (vector<Person>::iterator it = v.begin(); it != v.end();it++)
{
cout <<(*it).m_Name << endl;
}