zoukankan      html  css  js  c++  java
  • C++

    头文件

    1. map:#include<map>

    2. unordered_map:#include<unordered_map>

    底层实现

    1. map:内部是红黑树,自动排序。所以对map进行遍历,结果是有序的。

      • 补充:红黑树是非严格平衡二叉搜索树,而AVL是严格平衡二叉搜索树。
    2. unordered_map:内部是哈希表。所以对unordered_map进行遍历,结果是无序的。

    时间复杂度

    1. map:因为基于红黑树,所以对于map进行的增删改查操作都相当于是对红黑树进行的操作(内部原理:判断元素是否相同+比较大小,然后插入到树中),时间复杂度为 (O(logn))

    2. unordered_map:因为基于一个哈希表(内部原理:计算元素的Hash值,根据Hash值判断元素是否相同。哈希表:通过把关键码值映射到Hash表中一个位置来访问记录,可处理海量数据),所以查找的时间复杂度为 (O(1))

    map优缺点

    1. 优点:有序、大部分操作的时间效率高。

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

    unordered_map优缺点

    1. 优点:查找速度快。

    2. 缺点:建立哈希表较耗时间。

    使用场景

    1. map:基于有序性进行操作,用map。

    2. unordered_map:基于查找相关问题,用unordered_map。

    操作

    这俩操作使用都差不多,自行搜索。

    参考博客

    https://blog.csdn.net/BillCYJ/article/details/78985895

    https://blog.csdn.net/xiefeimmm/article/details/51886602

  • 相关阅读:
    将cvs迁移到svn
    wincvs,cvs,svn
    Open Source Camp 北京 2008技术交流盛会 感悟
    21,22,23,24日外出纪要
    10.31,11.1外出纪要
    虚拟经济区一行有感
    29,30号活动预告
    ror 2.1.2migration
    netbeans 6.5 release
    [转载]ruby on rails 每周精选二
  • 原文地址:https://www.cnblogs.com/OFSHK/p/14542522.html
Copyright © 2011-2022 走看看