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;
}