C++ STL系列之 boost:unordered | 您所在的位置:网站首页 › primeblue和boost区别 › C++ STL系列之 boost:unordered |
C++ STL系列之 boost:unordered_map和 std::map区别详解 (***) Linux下map hash_map和unordered_map效率比较 boost中的unordered_map使用方法 map和 unordered_map的使用对比(**) --------------------------------------------------------- 当不需要结果排好序时,最好用 unordered_map。但有 hash计算的耗时、即内存占用问题。 按插入排序,和 unordered不是一个概念。 按插入排序也是一种排序,而 unordered不是任何一种规则排序。 ================================= C++ STL系列之 boost:unordered_map和 std::map区别详解 (***)开发C++时,选择合适的数据结构是一个十分重要的步骤。因此,必须对每一个数据结构的原理及应用场景都有所了解。 boost::unordered_map和 std::map都是一种关联式容器,且原理类似,通过存储key-value键值对,可通过key快速检索到value,并且key是不重复的。但是,它们之间有一些区别,下面将逐一介绍。 排序区别: map是有序的:按照 operator map mapper; mapper.insert(make_pair(0, "Alice")); mapper[1] = "Bob"; mapper.insert(map::value_type(2, "Candy")); for (auto &iter : mapper) { cout using namespace std; // 首先创建一个无序 map,它的 key 使用 int 类型,value 使用 string 类型 unordered_map unorderedMap; // 三种插入新元素的方法,“茴”字有三种写法~ unorderedMap.insert(make_pair(0, "Alice")); unorderedMap[1] = "Bob"; unorderedMap.insert(unordered_map::value_type(2, "Candy")); // 对内部元素挨个输出 for (auto iter = unorderedMap.begin(); iter != unorderedMap.end(); iter++) { cout first |
CopyRight 2018-2019 实验室设备网 版权所有 |