// 仅string vector deque array 的迭代器支持的算术运算 // iter + n // iter - n // iter -= n // iter += n // iter1 - iter2 // >, >=, <, <=
// 迭代器范围(iterator range),由一对分别指向容器内元素或尾元素的下一个位置(begin , end)表示 // 左闭合区间 [begin,end) // 如果 begin 和 end 相等,则范围为空 // 如果 begin 和 end 不相等,则至少包含一个元素,且 begin 指向范围中的第一个元素 // 可以递增 begin 若干次,使 begin == end //构成范围的迭代器的要求: // 指向同一个容器,或者容器最后一个元素之后的位置,且可以通过递增 begin,到达 end
#include<vector> #include<array> #include<list> #include<iostream> using std::vector; using std::array; using std::list; using std::cout; using std::endl;
// bool find_in_vec(vector<int>::iterator first, vector<int>::iterator last, int n); vector<int>::const_iterator find_in_vec(vector<int>::const_iterator first, vector<int>::const_iterator last, int n);
int main() { const vector<int> vi{1,35,7423,8,23,89,213,45,2438,2,2367,923,77,3}; vector<int> vi2{1,35,7423,8,23,89,213,45,2438,2,2367,923,77,3}; //begin 有2个版本,一个非常量一个常量 auto ivi = vi.begin();//vector<int>::const_iterator auto ivi2 = vi.cbegin();//vector<int>::const_iterator auto ivi3 = vi2.begin();//vector<int>::iterator auto ivi4 = vi2.cbegin();//vector<int>::const_iterator