栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C++】STL之unordered

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C++】STL之unordered

文章目录
    • unordered系列关联式容器介绍
    • unordered系列关联式容器和map/set的区别
    • unordered系列关联式容器的使用

unordered系列关联式容器介绍

在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进行很少的比较次数就能够将元素找到,因此在C++11中,STL又提供了4个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同。


unordered系列关联式容器和map/set的区别

unordered系列关联式容器底层使用的是哈希表,尽管两者在使用上区别不大,但是性质上还是有一些差异

  • unordered系列容器迭代器遍历元素是无序的,而map和set系列迭代器遍历是有序的
  • unordered系列容器在查找速度上更快,查找的时间复杂度可达到O(1)
  • unordered系列容器在空间占用上要优于map和set系列
  • unordered系列容器底层是哈希表,哈希表的建立比较耗费时间

unordered系列关联式容器的使用

在使用上,unordered系列关联式容器和map/set基本一致,具体参考

map和set的基本使用

但是由于底层结构的不同,两者的使用还是有一些差异

  • 在使用迭代器遍历时,map/set走的是红黑树的中序遍历,所以访问是有序的,而哈希表则没有这个性质,遍历是无序的
  • 由于哈希表的性质,unordered系列关联式容器并不支持反向迭代器
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/979867.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号