C++ STL map A1022. Digital Library(30) (注意字符串的读入)

#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

C++ STL map A1022. Digital Library(30) (注意字符串的读入)的相关文章

A1022. Digital Library (30)

A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an unique 7-digit number as its ID. Given any query from a reader, you are s

PAT-1022 Digital Library (30 分) 字符串处理

A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an unique 7-digit number as its ID. Given any query from a reader, you are s

A1022 Digital Library (30分)

一.技术总结 首先这是一个map,STL类型的题目,前面的一个问题是存储,首先可能会想到的是,把每个信息存储下来然后通过输入想要查询的方式进行查询.可是,如果这里会发现,是通过关键词然后查询输出,相关book的id号.这个样其实就可以使用map,把相关的关键词作为一个string,然后id使用一个set容器进行存储. 所以存储的形式就是map<string, set > 还有一点需要注意的是,查询函数query(),参数注意要使用引用,不然会有超时. 还有就是在输入一行中的单个字符串的时候,包

pat1022. Digital Library (30)

1022. Digital Library (30) 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Ea

1022. Digital Library (30) -map -字符串处理

题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an unique 7-digit number as its ID. Given any query from a reader, you

PAT甲级——A1022 Digital Library

A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an unique 7-digit number as its ID. Given any query from a reader, you are s

1022 Digital Library (30)(30 point(s))

problem A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an unique 7-digit number as its ID. Given any query from a reader, y

PAT Advanced 1022 Digital Library (30分)

A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an unique 7-digit number as its ID. Given any query from a reader, you are s

1022. Digital Library (30)

A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an unique 7-digit number as its ID. Given any query from a reader, you are s