1. set(顺序容器)
<set>主要包括set(元素不能重复)和multiset(可以包含若干个相等的元素),分别叫做“有序集合”和“有序多重集合”。set 和 multiset 的内部实现是一棵红黑树,它们支持的函数基本相同。
set<int> s;
struct rec{…}; set<rec> s; // 结构体rec中必须重载定义小于号
multiset<double> s;
Ps: 结构体rec中必须重载定义小于号
2. 遍历set 的方式
for(auto x : set)
3.count()
返回 是否存在 元素 是一个 bool 类型
4.迭代器
同 vector 一样 也存在迭代器的概念 简单理解为指针即可
5. size/empty/clear
同vector
6.end / begin
分别指向 set 首位元素的迭代器
7.find
s.find(x)在集合s中查找等于x的元素,并返回指向该元素的迭代器。若不存在,则返回s.end()。时间复杂度为 O(logn)O(logn)。
可以用来判断是否存在元素 x
如果存在的话,会返回迭代器,
如果不存在的话,会返回set.end()
所以可以通过判断 set.end() 与 set.find(x) 来确定是否存在元素x
8. insert
插入 时间复杂度O(log N)
9. lower_bound/upper_bound
同 vector BinarySearch 函数
10. count
set.count(x)返回集合s中等于x的元素个数,时间复杂度为 O(k+logn)O(k+logn),其中 kk 为元素x的个数
本文详细介绍了Python中的set数据结构,包括set与multiset的区别,如何通过for循环遍历、使用count()函数、迭代器操作,以及insert、find、lower_bound/upper_bound和count方法的使用。重点讲解了结构体重载小于号在set中的应用。
790

被折叠的 条评论
为什么被折叠?



