C++顺序容器迭代器Begin()、end()浅析
1.begin()、end()
生成指向容器中第一个元素和尾元素之后位置的迭代器。
vector<int> v1 = { 1,2,3,4 }; auto begin = v1.begin(); auto end = v1.end(); //修改v1的值 for (; begin < end; ) { *begin += 1; ++begin; } for (int i = 0; i < v1.size(); i++) { cout << v1[i] << endl; }
2.cbegin()、cend()
返回const迭代器,不能通过迭代器修改所访问的值。
vector<int> v1 = { 1,2,3,4 }; auto begin = v1.cbegin(); auto end = v1.cend(); //修改v1的值 for (int i=0; begin < end;i++ ) { //*begin += 1;//出现错误,显示表达式必须是可以修改的左值 v1[i] += 1;//可以通过下标法改变容器内元素值 ++begin; } for (int i = 0; i < v1.size(); i++) { cout << v1[i] << endl; }
3.rbegin()、rend()
返回反向迭代器
生成的rbegin 也是需要 自增才能访问
我原来的理解是定义到最后的元素,应该自减,这是不对的(这里从反转迭代器 4自增到反转迭代 3)


浙公网安备 33010602011771号