[C++STL] 迭代器 iterator 的使用
迭代器是一种检查容器内元素并遍历元素的数据类型,表现的像指针。
-
基本声明方式
容器::iterator it = v.begin();//例:vector<int>::iterator iter
-
auto 声明方式(关于 auto 的用法很多,有兴趣可以研究一下)
auto it =v.begin();
-
使用迭代器遍历容器
for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++) {
cout << *iter;
}
-
auto 遍历容器
for (auto i = v.begin(); i != v.end(); i++) {
cout << *i;
}
-
只读不改迭代器(关于const的使用)
for(vector<int>::const_iterator citer=ivec.begin();citer!=ivec.end();citer++)
{
cout<<*citer;
}
//区别vector<int>::const_iterator 和 const vector<int>::iterator
//const的位置不同,前者指向的容器中的元素不能改变,后者迭代器本身不能改变
迭代器支持的容器对应:
容器 | 支持的迭代器类别 | 容器 | 支持的迭代器类别 |
---|---|---|---|
set | 双向 | map | 双向 |
multiset | 双向 | multimap | 双向 |
vector | 随机访问 | list | 双向 |
queue | 不支持 | deque | 随机访问 |
priority_queue | 不支持 | stack | 不支持 |
制作:BDT20040
这是一期水贴(逃