小编Red*_*met的帖子

从向量中擦除元素 - rbegin() 与 begin()

我正在尝试解决 C++ 中的一个问题,其中一部分要求我使用rbegin()成员函数从向量中删除元素。但是,每次我编写下面提到的代码时,编译器都会抛出错误。这里有什么问题?

int main() {

    int a = 1, b = 2;

    vector<int> V = {a, b};

    auto it = V.rbegin();
    V.erase(it);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误:

但是,如果我使用begin()成员函数访问相同的元素,它编译得很好。下面的代码工作正常。

int main() {

    int a = 1, b = 2;

    vector<int> V = {a, b};

    auto it = V.begin()+1;
    V.erase(it);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ iterator vector erase reverse-iterator

8
推荐指数
1
解决办法
364
查看次数

标签 统计

c++ ×1

erase ×1

iterator ×1

reverse-iterator ×1

vector ×1