Day 002:PAT练习--1021 个位数统计 (15 分)
Posted 北海钟士季
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day 002:PAT练习--1021 个位数统计 (15 分)相关的知识,希望对你有一定的参考价值。
话不多说,看题目:
显而易见,这道题用map实现非常的方便,(才不是,其实还有更简单的办法,但是我觉得写那种代码实在没什么意义,再加上正好借此练习一下map)我的代码如下:
#include<iostream>
#include<string>
#include<map>
using namespace std;
const int maxn = 1010;
map<int, int> mp;
int main(){
string s;
cin >> s;
for(int i = 0; i < s.size(); i++){
mp[s[i] - 48] += 1;
}
for(map<int, int>::iterator it = mp.begin(); it != mp.end(); it++){
if(it -> second != 0){
cout << it -> first << \':\' << it -> second << endl;
}
}
return 0;
}
个人认为这道题需要注意以下几点:
1、由于map封装在C++标准模板库中,因此使用前要在头文件下添加 using namespace std;。并且map具有数组的特性,即定义时并不需要将其设置为map数组形式。
2、map内部是由红黑树实现的,因此会以键从小到大自动排序,对于这道题就不需要编写sort函数来用于从小到大输出了。
3、对于map内的每个元素,for循环遍历时判断语句中要使用迭代器。格式为 map<typename1, typename2>::iterator it;
这道题目比较容易,但是也不能掉以轻心,毕竟一个小错误就会导致失去大部分的得分点。
今天的台词分享时间:
“对武器,只要我们下功夫去研究,就能跟着不断改进。”
“问题在于你们,使用武器的人,也要跟着进步。”
xdm明天再见!
以上是关于Day 002:PAT练习--1021 个位数统计 (15 分)的主要内容,如果未能解决你的问题,请参考以下文章