C++11 unordered_map与map(插入,遍历,Find)效率对比。

这篇具有很好参考价值的文章主要介绍了C++11 unordered_map与map(插入,遍历,Find)效率对比。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前写过一篇:C++98 使用无序map
C++98 使用无序map

vs2017 Release X64环境下:
执行一千万次的时间下图所示:
C++11 unordered_map与map(插入,遍历,Find)效率对比。

第一组数据:
可以看出有序map执行插入所需时间比较短,约快2.3倍,

第二组数据:
遍历时间基本一致,

第三组数据:
无序map Find一千万次所需时间却快了约20倍

C++11 unordered_map与map(插入,遍历,Find)效率对比。
上图是执行一百万次结果。
插入无序map慢了一倍,
但Find快。

C++11 unordered_map与map(插入,遍历,Find)效率对比。
上图是执行十万次结果。
时间上来看相差无几。

代码在这里

综上来看:
在有大量插入操作,Find不那么多的时候,优先使用有序map;
在有大量Find,对map本身没有频繁的插入删除操作时,可以选择使用unorderd_map;

当然你也可以都是用map,要注意一些地方不需要排序。文章来源地址https://www.toymoban.com/news/detail-400171.html

到了这里,关于C++11 unordered_map与map(插入,遍历,Find)效率对比。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unordered_map的使用

    无序映射(Unordered maps)是用于存储键值和映射值组合成的元素的关联容器,并允许基于其键快速检索各个元素。在unordered_map中,键值通常用于唯一地标识元素,而映射值是具有与该键关联的内容的对象。键的类型和映射的值可能会有所不同。 unordered_map内部实现了一个哈希

    2024年02月12日
    浏览(28)
  • 封装unordered_set&&unordered_map

    注:实现unordered系列容器是为了学习,因此并非将全部接口实现,所以只实现部分接口 目录 哈希表的改造 模板参数列表的改造 增加迭代器操作 增加通过T获取value操作 HashTable.h的修改 unordered_set的封装 unordered_map的封装 K:关键码类型 T:不同容器T的类型不同,如果是unorder

    2024年02月05日
    浏览(31)
  • 【unordered_map和unordered_set的封装】

    这里的思路与前面讲解map/set的封装思路一致,STL不喜欢直接实例化出两份几乎相同的代码,所以用了模板参数来处理,还是老规矩: set中传入的是K,K,map中传入的是K,PairK,V .这样我们在哈希桶的结构中只需要用一个T类型的模板参数接受上层传入的参数即可。 基本框架的改造:

    2024年02月08日
    浏览(29)
  • 【C++】: unordered_map的使用

    key                键值的类型。unordered_map中的每个元素都是由其键值唯一标识的。 T                 映射值的类型。unordered_map中的每个元素都用来存储一些数据作为其映射值。 Hash                 一种一元函数对象类型,它接受一个key类型的对象作为

    2024年02月04日
    浏览(30)
  • C++ unordered_map哈希表

    leetcode: 49. 字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。 示例 1: 输入: strs = [“eat”, “tea”, “tan”, “ate”, “

    2023年04月25日
    浏览(34)
  • 【C++】unordered_map,unordered_set模拟实现

    喜欢的点赞,收藏,关注一下把! 上一篇文章我们把unordered_map和unordered_set底层哈希桶的知识也都说清楚了,今天就根据哈希桶模拟实现出unordered_map和unordered_set。 这里如果看过以前文章【C++】map和set的模拟实现,应该会觉得简单。 因为unordered_map和unordered_set底层都是哈希桶

    2024年01月21日
    浏览(34)
  • C++:关联式容器:unordered_map

    目录 1.unordered_ map特性 2. 常用接口的使用 1.insert          2.find 3.erase ​4.operator[ ]  3.迭代器的有效性 1. unordered_map是存储key, value键值对的关联式容器,其允许通过keys快速的索引到与 其对应的value。 2. 在unordered_map中,键值通常用于惟一地标识元素,而映射值是一个对象,

    2024年02月09日
    浏览(29)
  • 【C++关联式容器】unordered_map

    目录 unordered_map 1. pair类型 2. 关联式容器额外的类型别名 3. 哈希桶 4. 无序容器对类型的要求 5. Member functions 5.1 constructor、destructor、operator= 5.1.1 constructor 5.1.2 destructor 5.1.3 operator=  5.2 Capacity ​5.2.1 empty 5.2.2 size 5.2.3 max_size 5.3 Iterators 5.4 Element access 5.4.1 operator[] 5.4.2 at 5

    2024年02月22日
    浏览(33)
  • unordered_map详解和性能分析

    std::unordered_map是C++标准库中的一个关联容器,它可以存储一组键值对,并且支持快速的查找、插入和删除操作。 unordered_map 比较重要的构造函数如下: 默认构造函数 创建一个空的unordered_map对象,键的类型为Key,值的类型为T。 初始桶数构造函数 创建一个空的unordered_map对象,

    2024年02月13日
    浏览(27)
  • 改造哈希表,封装unordered_map和unordered_set

    正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能 学习网站, 通俗易懂,风趣幽默 ,忍不住分享一下给大家。点击跳转到网站。 unordered_map是存的是pair是K,V型的,而unordered_set是K型的,里面只存一个值,那我们如何利用一个数据结构将他们都封装出来呢?

    2024年02月03日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包