栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++:insert函数和erase函数的简介

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++:insert函数和erase函数的简介

目录

insert:

情况一:

 情况二:

情况三:

erase:

情况一:

 情况二:

情况三:


insert:

原型:

string& insert ( size_t pos1, const string& str, size_t pos2, size_t n );

好吧,是不是看不明白,我们举例说明,一般insert有如下三个使用情况

情况一:

在指定位置it前“插入”值为val的元素,返回指向这个元素的迭代器,

int main()
{
	string s("123456");
	string::iterator it = s.begin();//it指向字符串的开头
	s.insert(it,'9');//这句话的意思就是头插入一个字符’9’进入字符串内
	cout << s << endl;
	return 0;
}

结果如下: 


  

 情况二:

在指定位置it前“插入”num个值为val的元素 

int main()
{
	string s("123456");
	string::iterator it = s.begin();//it指向开头
	s.insert(it,10,'9');//在it这个开头处,插入10个,字符’9’
	cout << s << endl;
	return 0;
}

结果如下

情况三:

 在指定位置it前“插入”区间[first, last)的所有元素.first,last,it都是迭代器

int main()
{
	string s("123456");
	string::iterator it = s.begin();//it指向s[0]处
	string::iterator first = s.begin()+1;//从S[1]开始
	string::iterator last = s.end() -1;//到s[4],也就是倒数第二个
	s.insert(it,first,last);//就是在S[0]处添加S[1]-S[4]的所有字符
	cout << s << endl;
	return 0;
}

 结果如下

 

erase:

也是三种用法

情况一:

删除从下标pos开始的n个字符

int main()
{
	string s("123456");
	s.erase(0,1);//删除从下标【0】开始的第一个字符,就是头删
	cout << s << endl;
	return 0;
}

结果如下

 情况二:

删除postion处的一个字符,postion是迭代器

int main()
{
	string s("123456");
	string::iterator it = s.begin()+1;
	s.erase(it);//这里it指向的是字符串的首字符+1,也就是第二个字符
	cout << s << endl;
	return 0;
}

结果如下:

情况三:

删除从first到last之间的字符(first和last都是迭代器) 

int main()
{
	string s("123456");
	string::iterator first = s.begin()+1;//从第二个字符向后
	string::iterator last = s.end() -1;//从倒数第二个字符向前
	s.erase(first,last);
	cout << s << endl;
	return 0;
}

结果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009707.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号