zoukankan      html  css  js  c++  java
  • vector::erase

    转自http://www.cnblogs.com/xkfz007/archive/2012/08/17/2644061.html

    erase的返回值是一个迭代器,而这个迭代器就是指向删除之前元素后的第一个元素

    erase把要删除的指针指向了指针的下一个位置

    remove,这个函数可以将迭代器范围内的等于某个值的元素“删除“

    这里的删除是不改变容器的大小,只是将一些不满足条件的元素前移

    这样的话保留的元素都移到了容器的前面,而remove正好就指向要删除的第一个元素,而后面的就是要删除的

    然后执行erase操作

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=100010;
     4 vector<int> v;
     5 int x;
     6 int main(){
     7     puts("测试1:------");
     8     v.clear();
     9     v.push_back(2);
    10     v.push_back(5);
    11     v.push_back(5);
    12     v.push_back(5);
    13     v.push_back(5);
    14     v.push_back(9);
    15    // v.push_back(5);
    16     x=5;
    17     vector<int> ::iterator it;
    18     for(it=v.begin();it!=v.end();it++) if(*it==x) v.erase(it);
    19     for(it=v.begin();it!=v.end();it++) cout<<*it<<endl;
    20 
    21     puts("测试2:------");
    22     v.clear();
    23     v.push_back(2);
    24     v.push_back(5);
    25     v.push_back(5);
    26     v.push_back(5);
    27     v.push_back(5);
    28     v.push_back(9);
    29     v.push_back(5);
    30     x=5;
    31     for(it=v.begin();it!=v.end();) {
    32         if(*it==x) v.erase(it);
    33         else it++;
    34     }
    35     for(it=v.begin();it!=v.end();it++) cout<<*it<<endl;
    36 
    37     puts("测试3:------");
    38      v.clear();
    39     v.push_back(2);
    40     v.push_back(5);
    41     v.push_back(5);
    42     v.push_back(5);
    43     v.push_back(5);
    44     v.push_back(9);
    45     v.push_back(5);
    46     x=5;
    47     v.erase(remove(v.begin(),v.end(),x),v.end());
    48     for(it=v.begin();it!=v.end();it++) cout<<*it<<endl;
    49 }
    View Code
  • 相关阅读:
    git分支管理策略
    git解决冲突
    git分支创建和合并
    git连接远程库
    git删除文件
    git撤销修改
    4k测试网站
    Windows10通过TightVNC远程连接Ubuntu18.04
    robot报告合并输出
    python 传参中的*和**
  • 原文地址:https://www.cnblogs.com/yijiull/p/7420803.html
Copyright © 2011-2022 走看看