【学习笔记】set & multiset
PS:本文仅起一个备忘的作用。
set
set 指的是有序的不可重集,与数学上的定义类似。
常用操作:
p.insert(x)
:在 \(p\) 中插入 \(x\),若 \(p\) 中已有 \(x\) 则返回 false,否则返回 truep.erase(x)
:在 \(p\) 中删除值为 \(x\) 的元素,返回删除的元素个数p.erase(pos)
:在 \(p\) 中删除迭代器为 \(pos\) 的元素p.clear()
:清空 \(p\)p.begin()
:返回指向 \(p\) 首元素的迭代器p.rbegin()
:返回指向 \(p\) 末尾元素 的迭代器p.end()
:返回指向 \(p\) 最后的占位符的迭代器,没有元素p.count(x)
:返回 \(p\) 内值为 \(x\) 的元素个数,因为 set 中元素不可重复,所以其返回值只能为 0 或 1p.empty()
:\(p\) 是否为空p.size()
:返回 \(p\) 内元素个数p.find(x)
:返回指向 \(p\) 内值为 \(x\) 的元素的迭代器,若不存在则返回p.end()
p.lower_bound(x)
:返回 \(p\) 中首个大于等于 \(x\) 的值的迭代器,若不存在则返回p.end()
p.upper_bound(x)
:返回 \(p\) 中首个大于 \(x\) 的值的迭代器,若不存在则返回p.end()
PS:set 内置的 lower_bound()/upper_bound()
复杂度为 \(O(\log n)\),但是如果使用 algorithm
中的 lower_bound()/upper_bound()
复杂度则为 \(O(n)\)
PS:set 不支持修改
multiset
multiset 指的是有序的可重集。其操作和 set 基本相同。只不过由于其可以有相同元素,所以部分操作可能有变化。multiset 同样不支持修改。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】