C++ 用set容器过滤插入到map容器中的元素
来源:互联网 发布:切纸机无刀后数据 编辑:程序博客网 时间:2024/06/11 08:28
void filter_insert_map(ifstream& filter_file,map<string,int>& strcount){ set<string> set_str; string filterword; while(filter_file>>filterword) set_str.insert(filterword); for(set<string>::iterator iter=set_str.begin(); iter!=set_str.end(); ++iter) cout<<*iter<<endl; string word; while(cin>>word) if(!set_str.count(word)) ++strcount[word]; }int main(int argc, const char *argv[]){ ifstream filter_file; string ignorefilename("ignore.txt"); filter_file.close(); filter_file.clear(); filter_file.open(ignorefilename.c_str()); cout<<"The filter words are"<<endl; string tmp; while(filter_file>>tmp) cout<<tmp<<endl; map<string,int> strcount; cout<<"Please insert the string of map"<<endl; filter_insert_map(filter_file,strcount); map<string,int>::iterator iter=strcount.begin(); while(iter!=strcount.end()) { cout<<iter->first<<" occur "<<iter->second<<" times "<<endl; ++iter; } system("pause"); return 0;}The filter words are123456789abcdefhijPlease insert the string of mapabcdefhij999888777666aaabbb ccc ddd eee fff12312^Z12312 occur 1 times666 occur 1 times777 occur 1 times888 occur 1 times999 occur 1 timesaaa occur 1 timesabc occur 1 timesbbb occur 1 timesccc occur 1 timesddd occur 1 timesdef occur 1 timeseee occur 1 timesfff occur 1 timeshij occur 1 times请按任意键继续. . .