题目描述
map<string, int> 把键(key)和值(value)成对存好,并自动按键的字典序排列。先看下面这个「建一个装水果的果篮 map,再用范围 for 把每种水果和数量逐行输出」的完整模板程序:
#include <bits/stdc++.h>
using namespace std;
int main() {
map<string, int> mp = {
{"apple", 2},
{"banana", 5},
{"cherry", 1}
};
for (const auto &p : mp) {
cout << p.first << " " << p.second << "\n"; // p 是 pair:first 是键,second 是值
}
return 0;
}
你的任务:把模板改成输出 mp.size()——也就是果篮里有几种水果(键值对的个数)。注意:size() 数的是键值对有几对,不是把所有数量加起来。
输入格式
本题没有输入。
输出格式
一行一个整数:果篮里水果的种类数。
样例
输入:
输出:
3
map 里有 apple、banana、cherry 三个键,所以 size() 是 ;三种水果的数量 是总量,与种类数无关。
数据范围
本题没有输入,直接在模板上改造即可。提示:size() 返回键值对的个数;把每个 p.second 加起来得到的是水果总数量,两者不是一回事。