zoukankan      html  css  js  c++  java
  • unordered_map初用

    unordered_map,顾名思义,就是无序map,STL内部实现了Hash
    所以使用时可以当做STL的Hash表使用,时间复杂度可做到O(1)查询

    在C++11前,使用unordered_map要像这样写:

    #include <tr1/unordered_map> //在unordered_map之前加上tr1库名
    using namespace std::tr1; //加上命名空间
    

    C++11:

    #include <unordered_map>
    

    使用自己定义的结构体要重载"===="

    map和unordered_map的比较

    map:

    • 优点:

      • 有序性,这是map结构最大的优点,其元素的有序性在很多应用中都会简化很多的操作
      • map底层是以红黑树的数据结构实现的,支持的搜索,插入,删除都是O(logn)的时间复杂度。
    • 缺点:

      • 空间占用率高,因为map内部实现了红黑树,虽然提高了运行效率,但 是因为每一个节点都需要额外保存父节点、孩子节点和红/黑性质,使得每一个节点都占用大量的空间

    unordered_map:

    • 优点: 因为内部实现了哈希表,因此其查找速度非常的快
    • 缺点: 哈希表的建立比较耗费时间
    • 适用处:对于查找问题,unordered_map会更加高效一些,因此遇到查找问题,常会考虑一下用unordered_map
  • 相关阅读:
    ambari
    linux常用命令
    scala新版本学习(3)
    Spring中的AOP
    Spring中的Bean
    Spring的基本应用(1):依赖以及控制反转
    Scala新版本学习(2):
    python之time模块
    python之编码与解码
    爬虫之re数据提取的使用
  • 原文地址:https://www.cnblogs.com/Orz-IE/p/12039459.html
Copyright © 2011-2022 走看看