zoukankan      html  css  js  c++  java
  • STL中erase()的用法

    erase()是STL提供的容器中比较常用的方法之一,它的功能是删除容器中的某些元素,其中它的函数原型如下:

    1.有两个参数,且参数类型都是size_t型:

    string& erase ( size_t pos = 0, size_t n = npos );
    

    功能是:删除容器中从pos位置开始的n个元素。返回值是经过删除操作后的容器。

    示例:

    #include<iostream>
    using namespace std;
    
    int main()
    {
        string str = "hello world!";
        string::iterator it_1 = str.begin();
        string::iterator it_2 = str.begin() + 1;
        //用法1
        cout<<str.erase(0,1)<<endl;
    }
    

    结果:

    (注:第一种erase用法是string容器所特有的,vectro和list等容器没有这种用法,更多erase的用法见http://www.cplusplus.com/search.do?q=erase)

    2.有一个参数,且参数类型为iterator:

    iterator erase ( iterator position );
    

    功能是:删除容器中position所指位置的元素。返回值是指向被删元素之后的那个元素(即下一个元素)的迭代器。

    示例:

    #include<iostream>
    using namespace std;
    
    int main()
    {
        string str = "hello world!";
        string::iterator it_1 = str.begin();
        string::iterator it_2 = str.begin() + 1;
        //用法2
        str.erase(it_1);
        cout<<str<<endl;
    }
    

    结果:

    3.有两个参数,且参数类型都是iterator:

    iterator erase ( iterator first, iterator last );
    

    功能是:删除容器中first到last之间的所有元素(左闭右开),但不包括last所指的元素。(即删除fist~last -1所指的元素)返回值是一个迭代器,该迭代器指向last所指得的元素,可以理解为返回的就是last。

    示例:

    #include<iostream>
    using namespace std;
    
    int main()
    {
        string str = "hello world!";
        string::iterator it_1 = str.begin();
        string::iterator it_2 = str.begin() + 1;
        //用法3
        str.erase(it_1,it_2);
        cout<<str<<endl;
    }
    

    结果:

  • 相关阅读:
    Java并发之同步原语
    Iterator与ListIterator的区别
    java集合之深入分析ArrayList
    深入分析HashMap
    ssm项目,web容器无法初始化项目
    疯狂java学习笔记
    Delphi 转载:图形的移动、交错、雨滴状、百页窗、积木堆叠等显现方式
    Delphi 转载:Delphi 如何GET/POST 调用HTTP请求
    Delphi 界面和组件背景透明相关方法
    Delphi 把Form界面设置有弧度的矩形
  • 原文地址:https://www.cnblogs.com/wangkundentisy/p/9023977.html
Copyright © 2011-2022 走看看