C++ set

只有key值,自动根据key值排序,不允许有相同的键值
只读容器,改变元素会破坏set的组织
multiset允许key值重复.

set和multiset底层是红黑树,平衡二叉树的一种

平衡二叉树(红黑树)
1.任何节点的值都大于左树所有值,小于右树所有值,因此总根节点一直往左走,到尽头得到最小值(插入排序也是如此)
2.平衡()左树和右树的深度差值不大于1

构造函数

方法说明
set st;set默认构造函数:
mulitset mst;multiset默认构造函数:
set(const set &st);拷贝构造函数

API

方法描述
set& operator=(const set &st);重载等号操作符
swap(st);交换两个集合容器
size();元素个数
empty();是否为空

insert(elem);//在容器中插入元素。
clear();|清除所有元素
erase(pos);|删除pos迭代器所指的元素,返回下一个元素的迭代器。
erase(beg, end);|删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
erase(elem);|删除值为elem的元素。
find(key);|查找键key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();
count(key);|查找键key的元素个数
lower_bound(keyElem);|第一个key>=keyElem元素的迭代器。
upper_bound(keyElem);|第一个key>keyElem元素的迭代器。
equal_range(keyElem);|容器中key与keyElem相等的上下限的两个迭代器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值