‹ 上一题 下一题 ›

g5-08295. 键有几个值 未做

1000 ms 256 MB 测试点 10 通过率 100% GESP-55级·STLmultimap

题目描述

multimap<string, int> 与 map 的区别是同一个键可以出现多次:一键多值。插入用 insert;取同键全部值用 equal_range。先看下面这个「插入两个键的多条记录,再用 equal_range 遍历输出 tom 的全部分数」的完整模板程序:

#include <bits/stdc++.h>
using namespace std;

int main() {
    multimap<string, int> mm;
    mm.insert({"tom", 90});
    mm.insert({"amy", 66});
    mm.insert({"tom", 85});
    mm.insert({"tom", 78});
    auto r = mm.equal_range("tom");   // [r.first, r.second) 是 tom 的全部条目
    for (auto it = r.first; it != r.second; ++it) {
        cout << it->second << "\n";   // it->first 是键,it->second 是值
    }
    return 0;
}

你的任务:把模板改成输出 mm.count("tom")——键 tom 名下有几条记录。

输入格式

本题没有输入。

输出格式

一行一个整数。

样例

输入:


输出:

3

tom 名下插了 、、 三条记录,count("tom") 等于 ——multimap 的一个键可以带多个值。

数据范围

本题没有输入,直接在模板上改造即可。提示:multimap 的 count(k) 数的是键 名下的条数,可以是 ,也可以是 、 甚至更多——不要按 map「一键一个」的老习惯想成 。

输入
输出

            
答案