首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

string的erase()有关问题

2012-09-25 
string的erase()问题#includeiostreamusing namespace stdvoid main(){string s1(12345)string::ite

string的erase()问题
#include<iostream>
using namespace std;
void main()
{
string s1("12345");
  string::iterator it;
for(it = s1.begin(); it != s1.end();)
{
s1.erase(it++);
}
}

我想删除全部的内容 为什么会崩掉?

[解决办法]
for(it = s1.begin(); it != s1.end();)
{
s1.erase(it++); // 删除后后面的应该会向前移,string.earse不会再重新分配内存,所以后面的字符直接前移
}

// 这样可以:
for(it = s1.begin(); it != s1.end();)
{
it = s1.erase(it);
}

热点排行