用的很少
set集合
用于存储一组唯一的元素,不允许重复元素存在,输入重复时会自动忽略,并按一定排序规则进行排序,默认按升序排序(<)。如果为结构体要为结构体重载一个小于号。
底层使用红黑数,插入删除,查找元素的时间复杂度都为对数时间,O(log n)。
insert()插入元素
erase()移除元素
find()查找集合中的元素
lower_bound()返回第一个不小于给定值的迭代器
upper_bound()返回第一个大于给定值的迭代器
size()返回元素数量
empty()判空
clear()清空
begin(),end(),rbegin(),rend()
set<int, greater<int> > mySet;从大到小排了,不传greater为从小到大,4 3 2 1与1 2 3 4
mySet.insert(25);
自定义比较逻辑
struct MyCompare {
bool operator()(const int& a,const int& b) const
{/*自定义比较逻辑*/ return a > b;
}
};
multiset多重集合
可以有重复元素
lower_bound()与upper_bound()常与multiset一起用。
对multiset用erase(x)会将集合中的x全部删除,如果只想删一个就st.erase(st.find(x))迭代器将第一个遇到的x删除(xxxyz变为xxyz)。
unordered_set无序集合
时间复杂度十分不稳定,用于存储唯一元素,无序,无upper_bound和lower_bound
标签:upper,set,const,元素,bound,集合 From: https://www.cnblogs.com/breadcheese/p/18001329