码迷,mamicode.com
首页 > 编程语言 > 详细

c++ STL中的set和multiset

时间:2018-04-14 23:27:50      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:根据   顺序   分享图片   迭代   结构   multi   实现   inf   准则   

1.结构

set和multiset会根据特定的排序原则将元素排序。两者不同之处在于,multisets允许元素重复,而set不允许重复。

技术分享图片

set中的元素可以是任意类型的,但是由于需要排序,所以元素必须有一个序,即大小的比较关系,只要是assignable、copyable、comparable(根据某个排序准则)的型别T,都可以成为set或者multisets的元素。

2.底层实现

和所有的标准关联容器类似,sets和multisets通常以平衡二叉树完成。

技术分享图片

自动排序的主要优点在于使二叉树搜寻元素具有良好的性能,在其搜索函数算法具有对数复杂度。但是自动排序也造成了一个限制,不能直接改变元素值,因为这样会打乱原有的顺序,要改变元素的值,必须先删除旧元素,再插入新元素。所以sets和multisets具有以下特点:

*不提供直接用来存取元素的任何操作元素

*通过迭代器进行元素的存取。

c++ STL中的set和multiset

标签:根据   顺序   分享图片   迭代   结构   multi   实现   inf   准则   

原文地址:https://www.cnblogs.com/xiaobaituyun/p/8836160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!