1、iterator分为顺序访问和随机访问,顺序访问分为前向(--)和后向(++),随机访问则没有这限制,在可访问的容器范围内,可以对迭代器增加随意的偏移量。需要注意的是,判断iterator是否到容器尾部时,尽量不要使用"<"操作符判断,而是用"!="来判断,因为"<"操作符只对随机迭代器有效:
for(pos = container.begin(); pos != container.end(); ++pos)
可双向访问的容器类有:list, set, multiset, map和multimap;随机访问的容器有vector和deque
此外,使用前置"++"操作效率比使用后置"++"操作符效率要高。
2、迭代器声明的时候分为两种:常规的和只读的
container::iterator it; 为常规声明,即可对迭代器指向的内容进行“读/写”操作。
container::const_iterator it; 为只读声明,即只能对迭代器指向的内容进行“读”操作。
资料来自《The C++ Standard Library》一书