本文主要是介绍c++primer 练习11.9,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*11.9
定义一个map,一个行号的list关联,list中保存的是单词出现的行号*/#include<iostream>
#include<map>
#include<list>
#include<sstream>
#include<fstream>
#include<string>
#include<cctype>
using namespace std;void change(string &str){if(isupper(str[0]))str[0]=tolower(str[0]);if(str[str.size()-1]==','||str[str.size()-1]=='.')str.erase(str.size()-1);}int main(int argc,char *argv[]){ifstream in(argv[1]);if(!in){cout<<"Can't open the file: "<<argv[1]<<endl;exit(1);}map<string,list<int>> word_count;string line_temp,str_temp;unsigned line=0;while(getline(in,line_temp)){++line;istringstream in_str(line_temp);while(in_str>>str_temp){change(str_temp);word_count[str_temp].push_back(line);}}for(const auto &x:word_count){cout<<x.first<<"出现在第 ";for(const auto &y:x.second)cout<<y<<' ';cout<<"行\n";}system("pause");}
这篇关于c++primer 练习11.9的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!