当前位置: 代码迷 >> C++ >> erase()里的几个异常
  详细解决方案

erase()里的几个异常

热度:2440   发布时间:2013-02-26 00:00:00.0
erase()里的几个错误
本帖最后由 DannyPassante 于 2013-02-02 10:43:57 编辑
 #include <string>
#include <vector>
#include <iostream>
 using namespace std;
 
int main()
 {
 string file=$Ilovestl.;
 filter_text(file, filter);


 system("pause");
 return 0;
 

}
void filter_text(vector<string>*word,string filter)
{
string pos;
filter.insert(0,"\"+.()$1");
vector<string>::iterator iter= word->begin();
vector<string>::iterator iter= word->end();
while((pos=*iter.find_first_of(filter,pos))=string::npos){
*iter.erase(pos,1);
iter++;

}

}
//红色的是错误,还有一些错误没发现。

------解决方案--------------------------------------------------------
引用
vector<string>::iterator iter= word->begin();
vector<string>::iterator iter= word->end();
这里也能编过?重复定义了吧。
引用
while((pos=*iter.find_first_of(filter,pos))=string::npos){ 
你至少要加个iter != xxxx.end()保证迭代器有效啊。