深入探索迭代器(续)
【 3. 反向迭代器】 反向迭代器是一种反向遍历容器的迭代器。其将自增(和自减)的含义反过来了: 对于反向迭代器,++ 运算将访问前一个元素,而 -- 运算则访问下一个元素。 所有容器还定义了 rbegin 和 rend 成员,分别返回指向容器尾元素和首元素前一位置的反向迭代器。 与普通迭代器一样,反向迭代器也有常量(const)和非常量(nonconst)类型。 图 11.1 使用一个假设名为 vec 的 vector 类型对象阐明了这四种迭代器之间的关系。 假设有一个 vector 容器对象,存储 0-9 这 10 个以升序排列的数字: vector<int> vec; for (vector<int>::size_type i = 0; i != 10; ++i) vec.push_back(i); // elements are 0,1,2,...9 下面的 for 循环将以逆序输出这些元素: // reverse iterator of vector from back to front vector<int>::reverse_iterator r_iter; for (r_iter = vec.rbegin(); // binds r_iter to last element r_iter != vec.rend(); // rend refers 1 before