1.注意存储方式
2.string string 映射关系 可以用map +set来实现
3.也可以用pair<string, string> //这个没试过
4.还有结构体方法实现....后来选了map+set,简单易懂
5. 注意需要把一本书的各个信息分开存 因为可能存在某一类信息的string 刚好一样
#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
#include<set>
#include<map>
#include<sstream>
using namespace std;
struct Pair {
string name;
vector<string> v;
} p;
map<string, set<string> > a[6];
int main() {
int n;
cin >> n;
cin.get();
for(int i=0; i<n; i++) {
string ID, ti, au, wo, pu, ye;
getline(cin, ID); // cout << ID << endl;
getline(cin, ti); // cout << ti << endl;
getline(cin, au); // cout << au << endl;
getline(cin, wo); // cout << wo << endl;
getline(cin, pu); // cout << pu << endl;
getline(cin, ye); // cout << ye << endl;
a[1][ti].insert(ID);
a[2][au].insert(ID);
a[4][pu].insert(ID);
a[5][ye].insert(ID);
stringstream ss(wo);
while(ss >> wo) {
a[3][wo].insert(ID);
}
}
cin >> n;
for(int i=0; i<n; i++) {
int t;
string tmp;
scanf("%d: ", &t);
getline(cin, tmp);
cout << t << ": " << tmp << endl;;
if(a[t][tmp].size() == 0){
cout << "Not Found" << endl;
}
for(set<string>:: iterator it= a[t][tmp].begin(); it!=a[t][tmp].end(); it++){
cout << *it << endl;
}
}
return 0;
}