手机
当前位置:查字典教程网 >编程开发 >C语言 >C++中的哈希容器unordered_map使用示例
C++中的哈希容器unordered_map使用示例
摘要:随着C++0x标准的确立,C++的标准库中也终于有了hashtable这个东西。很久以来,STL中都只提供作为存放对应关系的容器,内部通常用...

随着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; }

【C++中的哈希容器unordered_map使用示例】相关文章:

c++函数中的指针参数与地址参数区别介绍

C++中的异或运算符^的使用方法

C++中的三种继承public,protected,private详细解析

C/C++实现矩阵的转置(示例代码)

STL各个容器性能详细比较

如何在C语言的宏中使用类型关键字

C++中引用的使用总结

C++按位异或运算符的使用介绍

基于C++类型重定义的使用详解

C中的volatile使用方法

精品推荐
分类导航