Bootstrap

11097 小蓝的图书馆

STL

这个问题可以通过使用一个 map 来维护小蓝的图书馆,其中键是作者的名称,值是该作者的图书数量,由题意可知和书名没关系。

map<char,int >library;

首先,我们创建一个空的 map 来存储图书馆信息 librarylibrary。然后,我们执行 n 次操作,根据操作类型来执行不同的逻辑。输入操作 operation:

如果操作是 addadd,则我们读取两个字符串,booknamebookname 和 authorauthor,然后在 map 中查找 authorauthor,如果 authorauthor 已经存在,则增加其对应的值(书籍数量),即 library[author]++;library[author]++;,如果不存在,则将 authorauthor 添加到 map 并初始化其值为 11。在 C++ 中,直接使用下标查找会对不存在的键赋 00,因此 C++中无需判断是否存在。

如果操作是 findfind,则我们读取一个字符串 authorauthor,然后从 map 中查找 authorauthor,并输出对应的值(书籍数量),如果没找到说明没有这个作者,输出 00 即可

#include<bits/stdc++.h>

using namespace std;
map<string,int>lib;
int main()
{
	int n;cin>>n;
	for(int i=1;i<=n;++i)
	{
		string operation;
		//cout<<"Input the operation :\n";
		cin>>operation;
		if(operation=="add")
		{
			string author,book;
			cin>>book>>author;
			lib[author]++;//map的引用,没有直接创建
		}
		else if(operation=="find")
		{
			string author;
			cin>>author;    //输出关系
			cout<<lib[author]<<"\n";
		}
	}
	return 0;
}

;