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)

 

posted @ 2022-03-27 17:28  SpriteZzz  阅读(672)  评论(0)    收藏  举报