读书人

erase()里的几个异常

发布时间: 2013-02-19 11:11:40 作者: rapoo

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()保证迭代器有效啊。

读书人网 >C++

热点推荐