ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

A1022

2020-01-27 16:02:45  阅读:150  来源: 互联网

标签:title int A1022 cin key year ID


#include<iostream>
#include<vector>
#include <string>
#include <set>
using namespace std;
struct book{
	int ID;
	string title;
	string author;
	vector<string>key_word;
	string publisher,year;
};
int main(){
	int n,m,t_ID,temp,flag=0;
	string t_title,t_author,t_key,t_pub,content,t_year;
	cin>>n;
	vector<book>B(n);
	for(int i=0;i<n;i++){
		book b;
		cin>>t_ID;
		getchar();
		getline(cin,t_title);
		getline(cin,t_author);
		while(cin>>t_key){
            b.key_word.push_back(t_key);
             char c=getchar();
            if(c=='\n')
                break;
        }
        getline(cin,t_pub);
		cin>>t_year;
		b.ID=t_ID;
		b.title=t_title;
		b.author=t_author;
		b.publisher=t_pub;
		b.year=t_year;
		B.push_back(b);
	}
	cin>>m;
	set<int>S;
	for(int i=0;i<m;i++){
		scanf("%d: ",&temp);
		getline(cin,content);
		if(temp==1){
			for(int j=0;j<B.size();j++){
				if(B[j].title==content){
					S.insert(B[j].ID);
					flag=1;
				}
			
			}
		}
		if(temp==2){
			for(int j=0;j<B.size();j++){
				if(B[j].author==content){
					S.insert(B[j].ID);
					flag=1;
				}
			}
		}	
		if(temp==3){
			for(int j=0;j<B.size();j++){
				for(int k=0;k<B[j].key_word.size();k++)
				if(B[j].key_word[k]==content){
					S.insert(B[j].ID);
					flag=1;
				}
			}
		}	
		if(temp==4){
			for(int j=0;j<B.size();j++){
				if(B[j].publisher==content){
					S.insert(B[j].ID);
					flag=1;
				}			
			}
		}
		if(temp==5){
			for(int j=0;j<B.size();j++){
				if(B[j].year==content){
					S.insert(B[j].ID);
					flag=1;
				}
			}
		}
		if(flag==1){
			cout<<temp<<": "<<content<<endl;
			for(auto it=S.begin();it!=S.end();it++) printf("%07d\n",*it);
			
		}		
		
		else{
			cout<<temp<<": "<<content<<endl;
			cout<<"Not Found"<<endl;
		}
		S.clear();
		flag=0;
	}
	return 0;
}

  将有空格隔开的一个字符串分为数个字符串时可以用:

while(cin>>t_key){
            b.key_word.push_back(t_key);
             char c=getchar();
            if(c=='\n')
                break;
        }

  ==============在拿到此题的时候我感觉这题可以用map来做,但是还是觉得用结构体模拟要简单一点,下面我想用map试试

标签:title,int,A1022,cin,key,year,ID
来源: https://www.cnblogs.com/tao7/p/12236188.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有