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

erase()里的几个异常

2013-02-19 
erase()里的几个错误本帖最后由 DannyPassante 于 2013-02-02 10:43:57 编辑#include string#include v

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

热点排行