首页 > 代码库 > poj 2503 Babelfish

poj 2503 Babelfish

题目链接:http://poj.org/problem?id=2503


题目大意:就是给你一本词典,问你能否在词典中找到你要查询单词的意思,不能就输出eh


思路:map的入门级题,直接词典中的词组存到map中,然后直接查询。就是有些细节需要注意


code:

#include<cstdio>
#include<iostream>
#include<cmath>
#include<string>
#include<map>

using namespace std;

int main()
{
    map<string,string> m1;
    map<string,string>::iterator m1_it;
    string s1,a,b;
    while(getline(cin,s1))
    {
        int pos=s1.find(" ");
        a.assign(s1,0,pos);
        b.assign(s1,pos+1,s1.size());
        //cout<<a<<" "<<b<<endl;
        m1[b]=a;
        while(getline(cin,s1))
        {
            if(s1=="\0") break;      //用“\0”判断结束
            int pos=s1.find(" ");
            a.assign(s1,0,pos);
            b.assign(s1,pos+1,s1.size());
            //cout<<a<<" "<<b<<endl;
            m1[b]=a;
        }


        while(getline(cin,s1))
        {
            if(s1=="\0") break;
            m1_it=m1.find(s1);    //查找
            if(m1_it==m1.end())
            {
                cout<<"eh"<<endl;
            }
            else
            {
                cout<<m1_it->second<<endl;
            }
        }
    }
    return 0;
}



poj 2503 Babelfish