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. OpenGL学习脚印: 投影矩阵和视口变换矩阵
  2. mysql anyvalue报错_Mysql 的ANY_VALUE()函数和 ONLY_FULL_GROUP_BY 模式
  3. Linux Kernel TCP/IP Stack — L3 Layer — netfilter 框架
  4. 栈(Stack) 任何程序执行前,预先分配一固定长度的内存空间
  5. 【鸿蒙 HarmonyOS】UI 布局 ( 网格布局 TableLayout )
  6. test_bit、set_bit和clear_bit
  7. 华为p4用鸿蒙系统吗_华为正式发布鸿蒙OS Beta版,网友:荣耀还能用上鸿蒙吗
  8. note header initialization discussion
  9. 漫步数理统计十——连续随机变量(上)
  10. 数据算法之选择排序(selectSort)的Java实现
  11. pca各个向量之间的相关度_机器学习十大经典算法之PCA主成分分析
  12. Linux 3.13.0删除了Netlink API函数genl_register_ops() / genl_unregister_ops()
  13. OpenCV-Python实战(16)——人脸追踪详解
  14. arcgis注册dsoframer.ocx等组件
  15. Untiy3D里用C#做出连线题目~
  16. 不知道如何管理眼镜店?这款管理软件帮助你搞定所有烦恼!
  17. off-by-one
  18. 阿里云 mysql 100_MySQL服务进程占用系统CPU达100%-阿里云开发者社区
  19. java面试---数据库之数据库优化及mycat分库分表
  20. 谷歌账号注册时中国大陆手机号无法验证,“此电话号码无法用于进行验证”快速解决。2023年新方法

热门文章

  1. django文档: Model中的ForeignKey, ManyToManyField, OneToOneField
  2. 计算机莫名其妙的游戏网页弹出,最近电脑老是自动弹出游戏网页,怎么处理?
  3. 编写简单的中文分词程式-.NET教程,Asp.Net研发
  4. 计算机网络双绞线制作图片,计算机网络 实验一 双绞线水晶头制作
  5. 空间管理大师已上线!
  6. 复积分的定理及其证明
  7. SOLIDWORKS技巧大全培训教程
  8. 北京,I'm coming
  9. Hello World,I am coming!
  10. 10 年经验告诉你:运维的真正价值在哪里?