set本质是集合,所有元素都会在插入时自动被排序。
set/multiset属于关联式容器,底层结构是用二叉树实现。
set和multiset区别:
set不允许容器中有重复的元素
multiset允许容器中有重复的元素
构造函数:
set<T> st;//默认构造函数
set(const set& st);//拷贝构造函数
赋值:
set& operator=(const set& st);//重载等号运算符
size()函数:返回容器中元素的数目
empty()函数:判断容器是否为空
swap()函数:交换两个集合容器
insert()函数:在容器中插入元素
clear()函数:清除所有元素
erase(pos)函数:删除pos迭代器所指的元素,返回下一个元素的迭代器
erase(beg,end)函数:删除区间[beg,end)的所有元素,返回下一个元素的迭代器
erase(elem)函数:删除容器中值为elem的元素
find(key)函数:查找key是否存在,返回该键元素的迭代器,若不存在,返回set.end();
count(key)函数:统计key元素个数(对于set而言,不是0就是1)
set和multiset区别:
set不可以插入重复数据,而multiset可以
set插入数据的同时会返回插入结果,表示插入成功
multiset不会检测数据,因此可以插入重复数据
两种方式创建队组
set排序规则:
默认是从小到大排列。
排序自定义类型: