hash_map

#include <hash_map>
#include <iostream>

int main( )
{
   using namespace std;
   using namespace stdext;

   hash_map <int, CString> hm1;
   hash_map <int, CString> :: const_iterator hm1_AcIter, hm1_RcIter;
   typedef pair <int, CString> Int_Pair;

   hm1.insert ( Int_Pair ( 1, _T("aaa") ) );
   hm1.insert ( Int_Pair ( 2, _T("bbb") ) );
   hm1.insert ( Int_Pair ( 3, _T("ccc") ) );

   hm1_RcIter = hm1.find( 2 );
  AfxMessageBox( hm1_RcIter->second);
}

hash_map

时间: 2024-08-19 04:42:58

hash_map的相关文章

C++ STL hash_map的使用以及STL hash_map的大“坑”

计算机编程中经常会用到hash表,而在C++中,使用STL编程更是少不了的.本文将介绍STL中hash_map的使用.在hash_map中使用自定义类型作为key值的方法以及在使用char *类型作为key值时遇到的问题. 一.需要的头文件以及命名空间 在linux下使用STL hash_map除了需要引用其所在头文件<hash_map>之外还要引用其命名空间.像这样写  1 using namespace __gnu_cxx; 二.hash_map的定义 先来看看hash_map是怎么定义的

Map和hash_map

map和hash_map 今天在写拼流的程序时碰到一个问题,要根据流的四元组的结构信息映射到该流的数据.也就是我在网络数据包拼接的过程中,要根据包的地址和端口信息,对应到其对应的一个流的数据上去,把端口和地址信息相同的包的数据段中的数据组装起来.自然想到用map,不过map要求其关键码类型提供一个小于操作,而我的这种四元组信息没有大小的关系,于是自然就想到用hash_map.    hash_map基于哈希表,它对数据的存储和查找所需的时间大大降低,几乎可以看成是常数时间(理想情况下是O(1))

map、hash_map、unordered_map 的思考

#include <map> map<string,int> dict; map是基于红黑树实现的,可以快速查找一个元素是否存在,是关系型容器,能够表达两个数据之间的映射关系. dict.insert(make_pair("abc",1)); dict.count("mn"); 看看dict中含有 mn的个数,因为元素是唯一的,所以这个返回值只有两种情况,0或者1. (multi_map就不是这样啦) dict.find("mn&q

CMap与hash_map效率对比

CMap与hash_map底层均采用hash stable实现,CMap是MFC提供的模板类.hash_map虽然目前并未纳入C++标准模板类库,但几乎每个版本的STL都提供了相应的实现.CMap与hash_map的存储于查询效率比较如下: 利用rand函数随机生成99999个整数构成查询数据集,紧接着申请9999个整数作为查询.测试两个模板类的插入与查询总时间,测试结果显示:当查询都不存在时CMap时间大约16ms,hash_map为0ms:当大部分查询存在时CMap时间为624,而hash_

海量数据处理策略之一—Hash映射 + Hash_map统计 + 堆/快速/归并排序

时间:2014.05.21 地点:基地 说明:根据July的博客等整理,感谢July的无私奉献 心情:现在都好开心呀,想着要为以后的时光好好奋斗~ --------------------------------------------------------------------------------------- 一.问题描述 海量日志数据,提取出某日访问百度次数最多的那个IP. 思路:由于数据集很大,我们的策略是先用哈希映射将海量数据集映射为适当数量的非海量数据集,这个非海量数据集的大

STL中map与hash_map容器的选择

[转]STL中map与hash_map容器的选择 先看看alvin_lee 朋友做的解析,我觉得还是很正确的,从算法角度阐述了他们之间的问题! 实际上这个问题不光C++会遇到,其他所有语言的标准容器的实现及选择上都是要考虑的.做应用程序你可能觉得影响不大,但是写算法或者核心代码就要小心了.今天改进代码,顺便又来温习基础功课了. 还记得Herb Sutter那极有味道的<C++对话系列>么,在其中<产生真正的hash对象>这个故事里就讲了map的选择.顺便回顾一下,也讲一下我在实用中

深度理解map hash_map set

map VS hash_map 1)map存储的时候为排好序的,所以输出时候也是排序的.而hash_map不是的. 2)map具有稳定性,底层存储为树,这种算法差不多相当与list线性容器的折半查找的效率一样,都是O (log2N). hash_map使用hash表来排列配对,hash表是使用关键字来计算表位置.当这个表的大小合适,并且计算算法合适的情况下,hash表的算法复杂度为O(1)的,但是这是理想的情况下的,如果hash表的关键字计算与表位置存在冲突,那么最坏的复杂度为O(n). 3) 

STL中map与hash_map的比较

1. map : C++的STL中map是使用树来做查找算法; 时间复杂度:O(log2N) 2. hash_map : 使用hash表来排列配对,hash表是使用关键字来计算表位置; 时间复杂度:O(1), 最坏的时间复杂度:O(n) 总体来说:hash_map 比 map 查找速度快,而且查找速度基本和数据量大小无关,属于常数级别,节省一定内存,如果没有必要排序的话,尽量使用 hash_map . 注:hash还有hash函数的耗时.当有100w条记录的时候,map也只需要20次的比较,20

linux hash_map

在linux下的hash_map hash_map本身以前本身不属于标准库,是后来引入的.有两种可能:一种可能它被放在了stdext名空间里,那么你就要使用using namespace stdext 引入该名空间并#include <hash_map>;.另一种可能就是它被反在了标准库的ext目录底下,仍旧属于std名空间这时你的源文件应当包含头文件#include <ext/hash_map>; 如果不知道的话.可以使用切换到你的stl库目录底下cd /usr/include/

C++中的hash_map的基础教程

为什么需要hash_map 用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能.例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改: 岳不群-华山派掌门人,人称君子剑 张三丰-武当掌门人,太极拳创始人 东方不败-第一高手,葵花宝典 ... 这些信息如果保存下来并不复杂,但是找起来比较麻烦.例如我要找"张三丰"的信息,最傻的方法就是取得所有的记录,然后按照名字一个一个比较.如果要速度 快,就需要把这些记录按照字母顺序排列,然后按照二分法