#include <bits/stdc++.h> #include<math.h> #include <string> using namespace std; //5个map变量分别建立书名,作者,关键词,出版社及出版年份与id的映射关系 map<string,set<int>> mpTitle,mpAuthor,mpKey,mpPub,mpYear; void query(map<string,set<int>>& mp,string& str){ if(mp.find(str) == mp.end()){ printf("Not Found\n"); }else{ for(set<int>::iterator it = mp[str].begin();it != mp[str].end();++it){ printf("%d\n",*it); } } } int main(){ int n,m,id,type; string title,author,key,pub,year; scanf("%d",&n);//书的数目 for(int i =0;i<n;++i){ scanf("%d",&id); char c = getchar();//接收掉id后面的换行 getline(cin,title);//读入书名title mpTitle[title].insert(id); getline(cin,author);//读入作者author mpAuthor[author].insert(id); while(cin>>key){ mpKey[key].insert(id); c = getchar(); if(c == ‘\n‘){ break; } } getline(cin,pub); mpPub[pub].insert(id); getline(cin,year); mpYear[year].insert(id); } string temp; scanf("%d",&m); for(int i =0;i<m;++i){ scanf("%d:",&type); getline(cin,temp); cout<<type<<": "<<temp<<endl; if(type == 1){ query(mpTitle,temp); }else if(temp == 2){ query(mpAuthor,temp); }else if(temp == 3){ query(mpKey,temp); }else if(temp == 4){ query(mpPub,temp); }else{ query(mpYear,temp); } } system("pause"); return 0; }
原文地址:https://www.cnblogs.com/JasonPeng1/p/12205053.html
时间: 2024-10-12 00:45:36