第 131 课
multiset
🔵 基础 约 7 分钟
一句话理解
multiset 允许重复的有序集合。
为什么要学
需要维护一堆可重复的键,并动态删最小值。
讲解
插入相同值会都留下。erase(x) 会删掉所有值为 x 的元素!删一个应 erase(s.find(x))。
这是和 set 最容易踩的坑。
例子
multiset<int> s;
s.insert(2);
s.insert(2);
cout << s.size();
输出:
2
两个 2 都在。
常见错误
- erase(2) 一次删光所有 2。
- find 失败时再 erase 迭代器。
练习 做完再看下一课
multiset.erase(x) 默认只删除其中一个 x。
按值删除会删全部相等元素。
在线练习 C++ 在浏览器里编译,代码不会上传 已通过
Ctrl / ⌘ + Enter 运行 · Tab 缩进
隐藏测试点只是界面不展示数据。题目 JSON 会下发到浏览器,可在开发者工具里看到,只适合自学,不是正式比赛评测。
进度保存在本机浏览器里。
左右方向键也可翻课