由于项目用到了,故抽空先大致记录一下unordered_map与map二者的区别

下面 以 unordered_map ( 无序map ) 为主进行比较。

1、头文件

#include <unordered_map>#include <map>

2、unordered_map 内部实现:哈希表
【而 map 内部实现了红黑树】

3、unordered_map 查找效率:非常高
unordered_map 内部的Hash表通过把关键码值映射到Hash表中一个位置来访问记录,查找的时间复杂度可达到O(1),其在海量数据处理中有着广泛应用。
【而 map 则需要挨个遍历查找,效率低下】

4、unordered_map 是否有序:无序
unordered_map 内部时哈希表,故当加入元素后,不会排序。
【而 map 内部实现了红黑树,故map存入元素时会自动排序,且默认升序】

分别举例子
举个 unordered_map 栗子:

    unordered_map<int, string> m_map;    m_map.insert(pair<int, string>(3, "333"));    m_map.insert(pair<int, string>(1, "111"));    m_map.insert(pair<int, string>(4, "444"));    m_map.insert(pair<int, string>(2, "222"));    m_map.insert(pair<int, string>(5, "555"));    unordered_map<int, string>::iterator iter = m_map.begin();    for (iter; iter != m_map.end(); iter++)    {        cout << iter->first << "," << iter->second.c_str() << endl;    }

输出:

3,3331,1114,4442,2225,555

unordered_map 输出结论:可看出为无序。

举个 map 栗子:代码里只是把 unordered_map 换成了 map 而已。

    map<int, string> m_map;    m_map.insert(pair<int, string>(3, "333"));    m_map.insert(pair<int, string>(1, "111"));    m_map.insert(pair<int, string>(4, "444"));    m_map.insert(pair<int, string>(2, "222"));    m_map.insert(pair<int, string>(5, "555"));    map<int, string>::iterator iter = m_map.begin();    for (iter; iter != m_map.end(); iter++)    {        cout << iter->first << "," << iter->second.c_str() << endl;    }

输出:

1,1112,2223,3334,4445,555

map 输出结论:可看出为有序。

结束:

分享也是自己对问题再次加深理解的方式,可能不全面,但绝对有用,后面将不断完善~

©著作权归作者所有:来自51CTO博客作者ALLIN君的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来

赞赏

0人进行了赞赏支持

更多相关文章

  1. php获取数组中最后一个元素的方法
  2. php实现获取数组中相同/不相同的元素
  3. 为什么推荐使用for-each而不是for循环遍历元素?
  4. Selenium3自动化测试【12】元素定位认知
  5. Jquery对选取到的元素显示指定的长度,对于的字符串用“...”显示
  6. jQuery编程基础精华02(属性、表单过滤器,元素的each,表单选择器,子元
  7. scrollTop到溢出滚动div中的活动元素
  8. jQuery使用之(四)处理页面的表单元素
  9. jQuery遍历祖先元素:parentsUntil

随机推荐

  1. php中的PCRE 函数,正则表达式处理函数。
  2. 将SQL查询的SELECT子句解析为PHP数组
  3. php 模板框架之smarty 的下载和安装
  4. 编译php时遇到的错误
  5. Doctrine 2.0 entitymanager-> replace()等
  6. PHP和MySQL应用实战
  7. phpmyadmin表前出现红色感叹号
  8. php中的date函数中时区问题
  9. 基于PHP会话的登录系统出现问题
  10. PHP - 在外部服务器上读取文件?