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;
}

结果如下:

  • 13
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值