TZOJ 5372: C++实验:STL之map
描述
使用STL中的map,查找字符串出现的次数。
部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。
- C++
int main() { int m; map<string, int> sm; Input(sm); cin>>m; while(m--) { string s; cin>>s; cout<<sm[s]<<endl; } return 0; }
输入
输入数据第一行为正整数n,接下来包含n行,每行一个字符串,表示字符串列表。
接下来有m行,每行一个字符串,表示要查找的字符串。
字符串均不含空格。
输出
查找每个字符串在字符串列表中出现的次数。
样例输入
5
abc
def
abc
def
abc
3
abc
def
hello
样例输出
3
2
0
AC感想:熟悉一下map键值对的创建方式map<数据类型,数据类型> 容器名;理论上来说,本题只是计算字符串出现的次数,但是也可以比如记录数字出现的次数就变成map<int,int>;
#include<bits/stdc++.h> using namespace std; void Input(map<string, int> &sm) { int n; cin>>n; while(n--) { string s; cin>>s; sm[s]++;//键s所对应的值int++ } } int main() { int m; map<string, int> sm;//map == 键值对 Input(sm); cin>>m; while(m--) { string s; cin>>s; cout<<sm[s]<<endl; } return 0; }