STL map的使用

来源:互联网 发布:网络黄金egd的最新消息 编辑:程序博客网 时间:2024/05/21 07:06
#include <fstream>#include <stdexcept>#include <sstream>using namespace std;ifstream& open_file(ifstream &in, const string &file){in.close();in.clear();in.open(file.c_str());return in;}int main(int argc,char *argv[]){map<string,string> trans_map;string key,value;if(argc != 3)throw runtime_error("wrong number of arguments");ifstream map_file;                            //jia.txtif(!open_file(map_file,argv[1]))throw runtime_error("no transformation file");while(map_file>>key>>value)                 // 把jia.txt中的键值对一行一行读入到map对象map_file中trans_map.insert(make_pair(key,value));ifstream input;                             // 需要转化的文件,zhu.txtif(!open_file(input,argv[2]))throw runtime_error("no input file");string line;while(getline(input,line))        //getline读取文件input中的一行内容{istringstream stream(line);   //为了获得每行中的单词,将一个istringstream对象与所读取行line绑定起来。string word;while(stream >> word)       //这样,只需要使用普通的string输入操作符,即可读出这一行中的每一个单词。{map<string,string>::const_iterator it = trans_map.find(word);  //word为键值if(it != trans_map.end())word = it->second;           //word赋值为键值关联值cout<<word<<"  ";}cout<<endl;}}

0 0