首页 > 编程语言 > 详细

c++ STL中的set和multiset

时间:2018-04-14 22:36:43      阅读:268      评论:0      收藏:0      [点我收藏+]

1.结构

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

技术分享图片

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

2.底层实现

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

技术分享图片

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

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

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

c++ STL中的set和multiset

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!