stl randomacess iterator 笔记

今天看《c++标准库》第7节 iterotor,只有randomacess iterator支持+=n  ,-=n,+n,-n,it-it2(当然没有it+it2),支持的容器有string vector deque,及一般指针与array,其中string和

vector比较特别,因为 vector<T>::iterator it,it++时,返回的临时变量根据vector实现形式可能是指针也可能是class(其他容器基本是class,不存在这种情况),

而c++基本类型包括指针作为临时变量时都不允许更改其值,class 和struct可以,所以(it++)++这种形式可能在编译时出错。在vs2012里试了下没啥问题。说明iterator不是pointer.

书上给的例子是sort(++col1.begin(),...),begin()函数返回值如果是pointer临时变量,则不能++.

原文地址:https://www.cnblogs.com/cavehubiao/p/3278727.html