STL标准模板库之set
目录 一、关联式容器 二、什么是set? 特点 优缺点和适用场景: 三、定义及初始化 四、基本操作 1)容量函数 2)修改函数 3)迭代器 4)其他函数 五、与序列容器的不同点 一、关联式容器 关联式容器依据特定的排序准则,自动为其元素排序。排序准则以函数形式呈现,用来比较元素值(value)或元素键(key)。缺省情况下以 operator< 进行 比较,不过你也可以提供自己的比较函数,定义出不同的排序准则。 通常关联式容器由二叉树(binary tree)实现。在二叉树中,每个元素(节 点)都有一个父节点和两个子节点;左子树的所有元素都比自己小,右子树的所有元素都比自己大。关联式容器的差别主要在于元素的类型以及处理重复元素时的方式。 STL预先定义好的关联式容器有:集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap)。 二、什么是set? 集合(set)简而言之是一种包含已排序对象的关联容器,不允许有重复元素。 一个集合通过一个链表来组织,在插入操作和删除操作上比向量(vector)快,但查找或添加末尾的元素时会有些慢。具体实现采用了红黑树的平衡二叉树的数据结构。 特点 set中的元素都是排好序的。 set中没有重复的元素。 map和set的插入删除效率比用其他序列容器高,因为对于关联容器来说,不需要做内存拷贝和内存移动。 优缺点和适用场景