map 计数
map<int, int> cnt;
for (int x : a) cnt[x]++;如果 key 不存在,cnt[x] 会先创建默认值 0,再加一。
有序遍历
for (auto [x, c] : cnt) {
cout << x << ' ' << c << '\n';
}map 遍历时按 key 从小到大输出。
set 去重
set<int> s;
for (int x : a) s.insert(x);set 只保留不重复元素,并保持有序。
C++ 机试动画
本课导读
map 和 set 默认按 key 有序。它们适合去重、计数、按 key 顺序输出这类题,是 C++ STL 的基础工具。
map<int, int> cnt;
for (int x : a) cnt[x]++;如果 key 不存在,cnt[x] 会先创建默认值 0,再加一。
for (auto [x, c] : cnt) {
cout << x << ' ' << c << '\n';
}map 遍历时按 key 从小到大输出。
set<int> s;
for (int x : a) s.insert(x);set 只保留不重复元素,并保持有序。
把 C++ 做题手感练出来
这套课只讲机试最常用的 C++:输入输出、类型、数组、字符串和 STL。先把这些模板练熟,再去刷数据结构和算法题,效率会高很多。