C++函数的用法:erase函数

前面的文章中提到过如何向容器中添加元素,这里介绍一个如何删除容器中元素的函数,包括顺序容器和关联容器。

就是这个erase函数,基本用法如下:

c.erase(p)------------------------------从c中删除迭代器p指定的元素,p必须指向c中的一个真实元素,不能等于c.end()

c.erase(b,e)----------------------------从c中删除迭代器对b和e所表示的范围中的元素,返回e

具体用法如下:

  1. vector<string> e = {"a","b","c","d","e","f","g"};
  2. e.erase("c"); //删除字符串“c”
  3. auto it = e.end()-1; //.end()指向末尾的后一个元素,因此需要-1,指向末尾元素
  4. e.erase(it); //删除末尾元素“e”
  5. auto it2 = e.begin()+1;
  6. auto it3 = e.end()-2;
  7. e.erase(it2,it3); //删除it2到it3之间的元素

对于第二种用法,可以拓展一下:

  1. auto it = a.begin();
  2. auto it2 = a.find("c"); //it2指向“c”所在位置
  3. auto it3 = a.erase(it,it2); //删除it到it2之间的所有元素,即“a”和“b”
  4. a.erase(it3); //此时删除的是“c”,即先前it2所指,因为第三种用法返回的就是第二个迭代器所指位置

实际上,erase函数是用来操作string的,函数原型如下:

(1)string& erase ( size_t pos = 0, size_t n = npos );删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符
(2)iterator erase ( iterator position );删除position处的一个字符(position是个string类型的迭代器)
(3)iterator erase ( iterator first, iterator last );删除从first到last之间的字符(first和last都是迭代器)

第二种第三种就是上面操作容器的方式,第一种用法如下:

  1. string str ("This is an example phrase.");
  2. str.erase (10,8);

注:第一个参数表示的是下标值!不是第10个!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关注BLUEBEE的浏览器发展

其实我并不认识蓝峰这个人。只是偶尔发现这个人在我的博客中转了一下。怀着好奇的心情回访了一下。发现此人正在开发浏览器。目前IE内核的浏览器实在太多了。除了IE本身如遨游&#xff0c;世界之窗&#xff0c;包括360&#xff0c;还有腾讯的TT。。。。。但我为什么要关注蓝峰的…

Ubuntu 9.10 升级到ext4

最近一直在使用ubuntu系统&#xff0c;当时升级到9&#xff0c;04的时候&#xff0c;也没有在意系统的文件系统变了&#xff1b;当使用一段时间之后&#xff0c;发现系统没有8.10时使用的顺畅&#xff0c;这时才发现9.04之后心内核都支持ext4文件系统&#xff0c;该文件系统要比…

史上最简单的软件破解——5行脚本代码完美破解99%的过期软件

如果你看到了这篇博文&#xff0c;绝对保证不虚此行。仅仅5行脚本代码&#xff0c;即可破解99%的过期软件。 这件事的背景&#xff1a;最近在找了一些学习资料&#xff0c;其中有Rational Rose画的图&#xff0c;好久没用过它了。今天安装好&#xff0c;导入许可文件&#xff…

Jquery getJSON方法分析(二)

getJSON与aspx准备工作Customer类publicclassCustomer{ publicintUnid { get; set; } publicstringCustomerName { get; set; } publicstringMemo { get; set; } publicstringOther { get; set; }}&#xff08;一&#xff09;ashxCustomer customer newCustomer …

自适应阈值算法(大津阈值法)

最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标2部分。背景和目标之间的类间方差越大,说明构成图像的2部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致2部分差…

数据在链路层传播相关时间计算

本来很懵逼的 看到这篇文章基本全懂了 一般这种题目会让我感觉很是煎熬&#xff0c;不知道怎么算。终于打通这类题目&#xff0c;总结到这里。 先看这类题目的常见表述&#xff1a;如图所示&#xff0c;图中路由器采用存储–转发的方式&#xff0c;所有链路的传播速率均为100…

多年以后重发:多线程安全的变量模板

大家好&#xff0c;这里是我以xghome这个用户名&#xff0c;02年在CSDN上发布的《多线程安全的变量模板》&#xff0c;这次在《0bug -- C/C商用工程之道》一书中&#xff0c;作为“资源锁”和多线程通信核心示例&#xff0c;也再次出现。这个模板我当初大约写了19遍&#xff0c…

高等数学的函数连续,可导,可微和偏导数连续的关系(多元)

最近在自学机器学习 顺便把高数捡回来 结论&#xff08;一元函数范畴内&#xff09; 可导与连续的关系&#xff1a;可导必连续&#xff0c;连续不一定可导&#xff1b; 可微与连续的关系&#xff1a;可微与可导是一样的&#xff1b; 可积与连续的关系&#xff1a;可积不一定连续…

也说 ASP.NET MVC的 Script 管理

WebForm下的ScriptManager在ASP.NET MVC下自然是不能使用的。于是很多人开始困惑如何管理页面上可能发生冲突的脚本。CodePlex上还有一个项目专门做这件事情&#xff0c;当然也有人简单地通过HtmlHelper来解决。如果你看过jQuery UI Extensions for ASP.NET MVC&#xff0c;或者…

在控制台中实现“单词竞猜”游戏 C# 猜词游戏

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/u011528448/article/details/24670471 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_v…

byvoid 神牛的tarjan算法讲解!

[有向图强连通分量] 在有向图G中&#xff0c;如果两个顶点间至少存在一条路径&#xff0c;称两个顶点强连通 (strongly connected)。如果有向图G的每两个顶点都强连通&#xff0c;称G是一个强连通图 。非强连通图有向图的极大强连通子图&#xff0c;称为强连通分量 (strongly …

在Linux下快速搭建LAMP开发平台.doc

1.安装环境操作系统&#xff1a;Red Hat Linux Enterprise AS 4.0 update4数据库&#xff1a;MySQL 5.0.27Web服务器&#xff1a;Apache 2.2.4脚本语言&#xff1a;PHP 5.2.1<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />2.安…

关于NLP你还不会却必须要学会的事儿—NLP实践教程指南第一编

作者 | Dipanjan (DJ) Sarkar 编译 | 姗姗 出品 | 人工智能头条&#xff08;公众号ID&#xff1a;AI_Thinker&#xff09; 【人工智能头条导读】在研究和处理自然语言处理的很多问题时&#xff0c;除了关注各种各样基础的数据&#xff0c;高级的深度学习模型、算法外&#x…

ORACLE中表死锁的处理

在进行数据库管理的过程中,经常会出现数据表被用户的一些不合理操作而导致表被锁定的情况,以下主要介绍如何查找哪些表被哪个用户所锁定,以及如何解除锁定: 1.查找被锁定的表: select object_name,session_id,os_user_name,oracle_username,process,locked_mode,status from v$…

记录重要的NLP学习资源链接

整理一些NLP学习资源(不止NLP&#xff0c;本人主要关注NLP)&#xff0c;如果有更好的&#xff0c;欢迎分享_ NLP 中文自然语言处理相关资料 https://github.com/crownpku/Awesome-Chinese-NLP Contents 列表 Chinese NLP Toolkits 中文NLP工具 Toolkits 综合NLP工具包 Pop…

asp.net文件上传进度条控件(破解版~没有时间限制) 多项自定义

原版只能用30天&#xff0c;这个破解版可以长期用了&#xff08;设置了时间2010-2110&#xff09;. 注册控件&#xff1a;<% Register TagPrefix"fup" Namespace"OboutInc.FileUpload" Assembly"FileUpload" %>调用控件&#xff1a;<fo…

2010年开年的一地鸡毛

2010年开年的一地鸡毛文 小刀马2010年的网络开年一点儿也不顺利&#xff0c;刚刚半月有余&#xff0c;就接连爆发出两个大事。一是百度被黑&#xff0c;李彦宏惊叹地连说史无前例&#xff0c;史无前例。二是谷歌的退出。两大互联网搜索巨头接连“出事”&#xff0c;不知道是不是…

Java中的向下转型与向上转型

java转型问题其实并不复杂&#xff0c;只要记住一句话&#xff1a;父类引用指向子类对象。 什么叫父类引用指向子类对象&#xff0c;且听我慢慢道来. 从2个名词开始说起&#xff1a;向上转型(upcasting)、向下转型(downcasting). 举个例子&#xff1a;有2个类&#xff0c;Fathe…

细粒度审计 FGA

传统的 Oracle 数据库审计选件允许您在宏观级别上跟踪用户在对象上所执行的操作 — 例如&#xff0c;如果您审计对某个表的 SELECT 语句&#xff0c;则可以跟踪是谁从表中选择了数据。但是&#xff0c;您不知道他们选择了什么。利用数据操纵语句 — 如 INSERT、UPDATE 或 DELET…

矩阵连乘问题的算法分析

问题描述&#xff1a;给定n个矩阵&#xff1a;A1,A2,...,An&#xff0c;其中Ai与Ai1是可乘的&#xff0c;i1&#xff0c;2...&#xff0c;n-1。确定计算矩阵连乘积的计算次序&#xff0c;使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数据为矩阵个数和每个矩阵规模&…