只想判断在不在别用 m[k]
只想判断键 k 在不在,却写成 if (m[k]),它的副作用是【0】。
map 的遍历顺序
运行下面这段程序: #include <iostream> #include <string> #include <utility> #include <vector> using names
m[k] 悄悄插了一条
运行下面这段程序: #include <iostream> #include <string> #include <utility> #include <vector> using names
用 unordered_map 数词频
补全:用 unordered_map<string, int> 统计每个词出现几次,输出出现最多的那个词。 (本题用 g++ -std=c++17 -O0 编译。)
用 map 按分数从低到高统计
补全:用 map<int, int> 统计每个分数出现几次,再按分数从低到高输出「分数:次数」,用逗号隔开。 (本题用 g++ -std=c++17 -O0 编译。)
查在不在别把表撑大
补全:表里本来有 3 个键。依次判断 1 到 5 在不在表里,统计在的有几个;判断时不许往表里插东西。输出「在的个数/判断完之后表的大小」,格式如 2/3。 (本题用 g++ -std=c++17 -O0 编译。)
用 unordered_set 去重
补全:用 unordered_set<string> 去掉重复的词,输出不重复的词有几个。 (本题用 g++ -std=c++17 -O0 编译。)
有序的好处:找第一个达标的
补全:map 里存着「分数 → 名字」。用 lower_bound 找出第一个分数不低于 80 的人,输出名字。 (本题用 g++ -std=c++17 -O0 编译。)
统计词频用什么最省事
第 1 步:三个格子:苹果、香蕉、梨 第 2 步:看到苹果:它那一格加一 第 3 步:看到香蕉:它那一格加一 第 4 步:看到苹果:它那一格加一 第 5 步:看到梨:它那一格加一 第 6 步:看到香蕉:它那一格加一 第 7 步:看到苹果:它
去重靠的是什么性质
用哈希表去重,靠的是【0】。