STL的中心思想在于:将容器和算法分开,彼此独立设计,再将他们撮合在一起,迭代器就是这个作用
迭代器是一种smart pointer
迭代器最重要的编程工作就是对operator*和operator->进行重载
迭代器
迭代器分类:
- 输入迭代器,只读不写,只增,Istream
- 输出迭代器,只写不读,只增,Ostream
- 前向迭代器,可读可写,只增,Forward list, unordered containers
- 双向迭代器,可读可写,可增可减,List,set,multiset,map,multimap
- 随机访问迭代器,可读可写,随机访问,array,vector,deque,string,C-style array.
vector 迭代器中元素的插入可能引起迭代器失效(扩容);list中元素的插入和删除不会引起迭代器失效;