C++中的哈希容器unordered_map使用示例

 更新时间:2015年06月10日 10:46:31   投稿:junjie  
这篇文章主要介绍了C++中的哈希容器unordered_map使用示例,本文直接给出实例代码,并讲解了一些hash table的知识,需要的朋友可以参考下

随着C++0x标准的确立,C++的标准库中也终于有了hash table这个东西。

很久以来,STL中都只提供<map>作为存放对应关系的容器,内部通常用红黑树实现,据说原因是二叉平衡树(如红黑树)的各种操作,插入、删除、查找等,都是稳定的时间复杂度,即O(log n);但是对于hash表来说,由于无法避免re-hash所带来的性能问题,即使大多数情况下hash表的性能非常好,但是re-hash所带来的不稳定性在当时是不能容忍的。

不过由于hash表的性能优势,它的使用面还是很广的,于是第三方的类库基本都提供了支持,比如MSVC中的<hash_map>和Boost中的<boost/unordered_map.hpp>。后来Boost的unordered_map被吸纳进了TR1 (C++ Technical Report 1),然后在C++0x中被最终定了标准。

于是我们现在就可以开心得写以下的代码了:

#include <iostream>
#include <string>
#include <unordered_map>
 
int main()
{
 std::unordered_map<std::string, int> months;
 months["january"] = 31;
 months["february"] = 28;
 months["march"] = 31;
 months["april"] = 30;
 months["may"] = 31;
 months["june"] = 30;
 months["july"] = 31;
 months["august"] = 31;
 months["september"] = 30;
 months["october"] = 31;
 months["november"] = 30;
 months["december"] = 31;
 std::cout << "september -> " << months["september"] << std::endl;
 std::cout << "april   -> " << months["april"] << std::endl;
 std::cout << "december -> " << months["december"] << std::endl;
 std::cout << "february -> " << months["february"] << std::endl;
 return 0;
}

相关文章

  • 深入剖析OpenMP锁的原理与实现

    深入剖析OpenMP锁的原理与实现

    在本篇文章当中主要给大家介绍一下 OpenMP 当中经常使用到的锁并且仔细分析它其中的内部原理!文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2023-01-01
  • C++中priority_queue模拟实现的代码示例

    C++中priority_queue模拟实现的代码示例

    在c++语言中数据结构中的堆结构可以通过STL库中的priority_queue 优先队列来实现,这样做极大地简化了我们的工作量,这篇文章主要给大家介绍了关于C++中priority_queue模拟实现的相关资料,需要的朋友可以参考下
    2021-08-08
  • C++实现的归并排序算法详解

    C++实现的归并排序算法详解

    这篇文章主要介绍了C++实现的归并排序算法,结合实例形式详细分析了归并排序算法的原理、实现步骤、操作技巧与使用方法,需要的朋友可以参考下
    2017-05-05
  • C/C++中的mem函数和strcopy函数的区别和应用

    C/C++中的mem函数和strcopy函数的区别和应用

    strcpy和memcpy都是标准C库函数,strcpy提供了字符串的复制而memcpy提供了一般内存的复制。下面通过本文重点给大家介绍C/C++中的mem函数和strcopy函数的区别和应用,非常不错,感兴趣的朋友一起看下吧
    2016-08-08
  • C++ Qt开发之使用QNetworkAccessManager实现Web网页访问

    C++ Qt开发之使用QNetworkAccessManager实现Web网页访问

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,本文主要介绍了如何运用QNetworkAccessManager组件实现Web网页访问,需要的可以参考下
    2024-03-03
  • C++实现商品管理程序

    C++实现商品管理程序

    这篇文章主要为大家详细介绍了C++实现商品管理程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • C语言 map函数的基础用法详解

    C语言 map函数的基础用法详解

    这篇文章主要为大家介绍了C语言 map函数的基础用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • C++实现顺序排序算法简单示例代码

    C++实现顺序排序算法简单示例代码

    这篇文章主要介绍了C++实现顺序排序算法简单示例代码,对于学过C++的朋友一定不会陌生,现在重温一下这个算法,需要的朋友可以参考下
    2014-08-08
  • C++实现区块链的源码

    C++实现区块链的源码

    这篇文章主要介绍了C++实现区块链的源码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • C++实现动态顺序表(vector)

    C++实现动态顺序表(vector)

    这篇文章主要为大家详细介绍了C++实现动态顺序表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论