读书人

string的erase()有关问题

发布时间: 2012-09-25 09:55:58 作者: rapoo

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

读书人网 >C++

热点推荐