简介
- 迭代器是遍历容器内的数据类型,跟指针类似,指向的是容器内的某个元素。
- 作用:读取、修改容器内的元素。
- string,vector,map,list在c++中都有对应的迭代器。
不同类型迭代器及其相关使用:
一、string类:
1、定义:
string s1;
string::iterator it;
2、相关操作
- 指向字符串s1第一个字符的位置:
s1.begin();
- 指向字符串s1最后一个字符下一位的位置:
s1.end();
- 指向字符串s1最后一个字符的位置:
s1.rbegin();
- 指向字符串s1第一个字符前一位的位置:
s1.rend();
- 依次输出s1中的所有字符:
for (string::iterator iter = str.begin(); iter != str.end(); iter++)
{
cout << *iter;
}
二、vector类:
1、定义
vector<int> num;
vector<int>::iterator iter; // 定义迭代器
2、相关操作
- 指向第一个元素:
num.begin();
- 指向最后一个元素的下一位,这个是无效的:
num.end()
- 正向迭代器:
for (vector<int>::iterator iter = num.begin(); iter != num.end(); iter++)
cout << *iter << endl;
- 反向迭代器:
for (vector<int>::reverse_iterator riter = num.rbegin(); riter != num.rend(); riter++)
cout << *riter << endl;
三、map类:
1、定义:
- 定义
map<Type1,Type2>::iterator iter;
2、相关操作:
1.首位:iter=num.begin();
2.末位的下一位:iter!=num.end();
3. 遍历并输出:
for (map<string, int>::iterator iter = num.begin(); iter != num.end(); iter++)
cout << iter->first << " " << iter->second << endl;