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;//用法1cout<<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;//用法2str.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;//用法3str.erase(it_1,it_2);cout<<str<<endl;
}

结果:

转载于:https://www.cnblogs.com/wangkundentisy/p/9023977.html

STL中erase()的用法相关推荐

  1. STL 中map的用法详解

    STL 中map的用法详解 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可 ...

  2. 关于STL中的map用法

      STL中map用法详解         std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力, ...

  3. C++的STL中accumulate的用法

    accumulate定义在#include<numeric>中,作用有两个,一个是累加求和,另一个是自定义类型数据的处理 1.累加求和 int sum = accumulate(vec.b ...

  4. C++中erase的用法

    erase一共三种用法: 1.erase(pos,n); 删除从下标pos开始的n个字符,比如erase(0,1)就是删除第一个字符 2.erase(position); 删除postion处的一个字 ...

  5. STL中bitset的用法的整理

    构造函数 bitset<n> b;  b有n位,每位都为0.参数n可以为一个表达式. 如bitset<5> b0;则"b0"为"00000&quo ...

  6. C++工作笔记-stl中map基础用法(插入,遍历,删除)

    在最近一直在阅读xx项目,看到里面用到了map,读大学期间基本上从来没用到过这种stl(大学就用了Vector和list).下面对map敲如下代码: 运行截图如下: 代码如下: #include &l ...

  7. C++的STL中accumulate函数用法

    accumulate(arr.begin(), arr.end(), int val); accumulate函数包含在 #include<numeric> 头文件下,其中有三个参数,前两 ...

  8. STL中map用法详解

    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...

  9. [转] STL中map用法详解

    一.Map概述          Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完 ...

最新文章

  1. usaco Home on the Range
  2. python装饰器教学_Python装饰器学习(九步入门)
  3. php 计算指定年份的周总数与及第几周的开始日期和结束日期(从周一开始)
  4. linux整个文件夹下全部文件的属性,C/C++遍历目录下的所有文件(Windows/Linux篇,超详细)...
  5. Mac下配置Android环境
  6. Vue学习笔记之05-条件判断
  7. asp.net 安装element ui_vue入门003~vue项目引入element并创建一个登录页面
  8. erlang 小程序:整数序列,搜索和为正的最长子序列
  9. Atitit 循环处理的新特性 for...else...
  10. python实现ncm转mp3_滚动歌词制作 之 ncm格式转mp3
  11. linux dns配置服务器报告,Linux DNS服务实验报告
  12. 【Python打卡2019】20190423之52周存钱挑战-for+range()函数使用
  13. android so 瘦身,Android APK 瘦身实践
  14. mysql删除通用日志_删除MySQL log bin 日志操作记录
  15. September 2006
  16. 携程2016校园招聘笔试题分析
  17. Recon-ng的简单使用(recon-ng v5.1.1)
  18. 计算机中rom,计算机中rom指的是内存还是外存
  19. 读书笔记:机器学习实战(2)——章3的决策树代码和个人理解与注释
  20. 民办二本学计算机,2020湖南最垃圾的民办大学-湖南最差的民办二本

热门文章

  1. Android Studio项目调用第三方库iconv
  2. web前端学习笔记之Node.js
  3. iPhone苹果手机相册怎么加密隐藏私密苹果iPhone手机相册照片?
  4. 懂java转python容易吗_Java转行学Python难不难?老男孩IT教育
  5. 用TypeScript来写React官方入门教程 .tsx后缀文件,同时入门typescript和React
  6. linux在tty3创建用户,我对linux理解之tty三
  7. 常见的对话框Dialog
  8. CharGPT无法替代的职场发展底层逻辑
  9. 视屏播放_使用原生MediaPlayer+TextureView实现全屏、小窗口、视频列表、m3u8监控播放
  10. ROS-Academy-for-Beginners依赖包报错问题