🏵️set / multiset - 集合
STL中set/multiset类的详细介绍
set/multiset 容器基本概念
set 容器基本概念
set的特性是,所有的容器都会根据元素自身的键值进行自动被排序。
set的元素不像map那样可以同时拥有实值和键值,set的元素既是实值又是键值。
set不允许两个元素有相同的键值
我们不可以通过set的迭代器改变set元素的值。
因为其元素值就是键值,任意改变会严重破坏set的组织
换句话说,set的iterator是一种const_iterator
set和list拥有某些相同的性质,当对容器中的元素进行插入操作或者删除操作的时候,除了被删除的元素之外,操作之前的所有迭代器,操作之后仍然有效。
multiset 基本概念
multiset特性及用法和set完全相同,唯一的差别在于它允许键值重复。
set和multiset的底层实现是红黑树,红黑树为平衡二叉树的一种
注意,multiset和set共用一个头文件。
set 的遍历
set 常用API
set 构造函数
set 赋值操作
set 大小操作
set 插入和删除操作
插入之前可以指定排序规则:
自定义的数据类型需要指出排序规则。
当然,也可以通过重载小于操作符的方式指出。
set 查找操作
上述几个方法若不存在,返回值都是尾迭代器。
对组的构造和使用:
至此,读者应当对set/multiset的特点及基本操作有了较为全面的认识,使用时API记不清可以回头多看。
最后更新于