顺序容器删除元素出错,求教。
题目如下:
编写程序处理一个string类型的list容器。在该容器中寻找一个特殊值,如果找到,则将它删除。
代码如下:
int main(){ string word; list<string> slst; cout << "请输入字符串:" << endl; //为list读入字符串 while(cin >> word) slst.push_back(word); cin.clear(); //定义一个特殊字符串,并提示输入 cout << "请输入一个特殊字符串:" << endl; string hate_str; cin >> hate_str; //在list中寻找、删除特殊字符串 for(list<string>::iterator iter = slst.begin(); iter != slst.end(); ++iter) { if(*iter == hate_str) { iter = slst.erase(iter); //删除元素并更新迭代器 --iter; //使迭代器指向被删除元素的前一元素 } } return 0;}