本章主要内容
6. set
想要深入了解的可以查看:set 文档
这里我简单介绍一下:
- set是按照一定次序存储元素的容器
- 在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素 不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。
- 在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。
- set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直 接迭代。
- set在底层是用二叉搜索树(红黑树)实现的。
注意:
- map/multimap中存储的是真正的键值对<key, value>,set中只放value,但 在底层实际存放的是由<value, value>构成的键值对。
- set中插入元素时,只需要插入value即可,不需要make_pair()构造键值对。
- set中的元素不可以重复(因此可以使用set进行去重)。
- 使用set的迭代器遍历set中的元素,可以得到有序序列 。
- set中的元素默认按照小于来比较即升序排序。
- set中的元素不允许修改。
- set中的底层使用二叉搜索树(红黑树)来实现。
6.1 set 的修改–主要接口
1.iterator insert(iterator position,const value_type&x)
功能:在set