美文网首页
set、unordered_set、multiset

set、unordered_set、multiset

作者: __bba3 | 来源:发表于2020-07-12 16:43 被阅读0次

(1)set和unordered_set的区别

  • set基于红黑树实现,红黑树具有自动排序的功能,因此set内部所有的数据,在任何时候,都是有序的。
  • unordered_set基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较多的内存,无自动排序功能。底层实现上,使用一个下标范围比较大的数组来存储元素,形成很多的桶,利用hash函数对key进行映射到不同区域进行保存。

set与unordered_set的区别和map与unordered_map的区别一样。

(2)例子

  • set:
    输入:1,8,2,5,3,9
    输出:1,2,3,5,8,9

set默认是升序,其构造函数的排序规则是中是less<int>,降序为greater<int>。

  • Unordered_set:
    输入:1,8,2,5,3,9
    输出:9 3 1 8 2 5(也许这个顺序,受哈希函数的影响)

(3)set和multiset的区别

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

相关文章

  • C++ STL 集合类常用记录

    STL中关于集合的容器主要是set,multiset,unordered_set和unordered_multis...

  • set、unordered_set、multiset

    (1)set和unordered_set的区别 set基于红黑树实现,红黑树具有自动排序的功能,因此set内部所有...

  • c++ 使用unordered_set实现hashset

    使用unordered_set库来构造hashset unordered_set 官方文档介绍 Unordered...

  • 11-关联容器

    #include set,multiset #include map,multimap #include unor...

  • 容器是否带sort()函数

    array、vector、deque、 set/multiset、map/multimap、 unordered_...

  • STL:set,multiset

    sethe和multiset会在插入元素时,若元素为常见类型,会对元素进行排序,可以自定义排序,默认为从小到大。

  • LeetCode 170. Two Sum III - Data

    这个数据结构主要是把数据存储到unordered_multiset里,multiset类似set,但是它允许重复元...

  • teradata建表DDL

    ●是否允许重复记录❍SET 不允许记录重复CREATE SET TABLE table1 ...❍MULTISET...

  • C++ STL内核分析(2) 

    本文预览: deque\queue\stack深度探索 RB-tree深度探索 set\multiset深度探索 ...

  • STL容器之set/multiset

    构造函数 赋值操作 大小操作 插入 删除 实例 查找 实例 更改set容器排序规则 自定义数据 寻找上下限 实例 ...

网友评论

      本文标题:set、unordered_set、multiset

      本文链接:https://www.haomeiwen.com/subject/xvtncktx.html