vector中的`pop_back,erase,remove`之间的比较

vector中的`pop_back,erase,remove`之间的比较

  • vector 的函数pop_back()可以删除最后一个元素,而back()是取到最后一个元素,和python中的pop 不太一样,

  • erase可以删除一个元素,也可以删除一定范围中的元素

比如nums.erase(nums.begin()+i) 是删除第‘i+1’个元素,nums.erase(nums.begin(), nums.begin()+3)

erase操作之后容器的大小也相应地发生了变化,

  • remove 也可以删除容器中的元素,但是remove之后容器的大小一般不会发生改变, 所以不建议使用remove.

erase是有返回值的,但是要注意erase的返回值指向的是删除前的下一个

看下面的例子

#include <iostream>
#include <vector>

using namespace std;

int main(){
    int a[4] = {1,2,3,4};
    vector<int> p(a,a+4);
    int val = 2;

    for(auto m=p.begin();m != p.end(); m++){
        if(*m == val){
            cout<<*m<<endl;
            m = p.erase(m);
            cout<<*m<<endl;
        }
    }



    return 0;
}

输出的结果是

2
3

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦