linux下使用hash_map及STL总结

linux下使用hash_map及STL总结
    作者: zhdrfirst  时间: 2010-10-21

出处:http://blog.chinaunix.net/u3/119070/showart_2363418.html

hash_map不是C++标准库的一部分,但因其重要性很多库(如sgi stl、boost等)实现了hash_map,包括g++编译器所带的头文件也包含了hash_map的实现代码(其实现为sgi stl的版本),其在include/ext目录下,该目录还包含了hash_set,rope等的实现。

// 文件/usr/include/c++/4.4.0/ext/hash_map

_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
     65
     66 using std::equal_to;
     67 using std::allocator;
     68 using std::pair;
     69 using std::_Select1st;
     70
     71 /**
     72 * This is an SGI extension.
     73 * @ingroup SGIextensions
     74 * @doctodo
     75 */
     76 template<class _Key, class _Tp, class _HashFn = hash<_Key>,
     77 class _EqualKey = equal_to<_Key>, class _Alloc = allocator<_Tp> >
     78 class hash_map

首先从上述头文件开始的部分可以发现,hash_map定义在__gnu_cxx命名空间中,故你必须在使用时限定名字空间__gnu_cxx::hash_map,或者使用using关键字,如下例:

#include <ext/hash_map>
    using namespace __gnu_cxx;

int main()
    {
        hash_map<int, string> hm;
        /* 其它使用hash_map的代码 */
    }

STL其它头文件信息:

1.几乎所有的容器都在同名的头文件里,比如,vector在<vector>中声明,list在<list>中声明等。例外的是<set>和<map>。<set>声明了set和multiset,<map>声明了map和multimap。

2. 除了四个算法外,所有的算法都在<algorithm>中声明。例外的是accumulate、inner_product、adjacent_difference和partial_sum。这些算法在<numeric>中声明。

3.特殊的迭代器,包括istream_iterators和istreambuf_iterators,在<iterator>中声明。

4.标准仿函数(比如less<T>)和仿函数适配器(比如not1、bind2nd)在<functional>中声明。

linux下使用hash_map及STL总结相关推荐

  1. 如何在linux下检测内存泄漏

    1.开发背景 在 windows 下使用 VC 编程时,我们通常需要 DEBUG 模式下运行程序,而后调试器将在退出程序时,打印出程序运行过程中在堆上分配而没有释放的内存信息,其中包括代码文件名.行号 ...

  2. Linux下几款C++程序中的内存泄露检查工具

    Linux下编写C或者C++程序,有很多工具,但是主要编译器仍然是gcc和g++.最近用到STL中的List编程,为了检测写的代码是否会发现内存泄露,了解了一下相关的知识. 所有使用动态内存分配(dy ...

  3. mysql实现程序的动态链接_程序的链接和装入及Linux下动态链接的实现

    链接器和装入器的基本工作原理 一个程序要想在内存中运行,除了编译之外还要经过链接和装入这两个步骤.从程序员的角度来看,引入这两个步骤带来的好处就是可以直接在程序中使用printf和errno这种有意义 ...

  4. 深入剖析 linux GCC 4.4 的 STL string

    转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...

  5. Linux下逻辑卷LVM的管理和RAID磁盘阵列

    Linux系统安全 | Linux下逻辑卷LVM的管理和RAID磁盘阵列 原创 谢公子 [谢公子学安全](javascript:void(0);) 昨天 转载自公众号:谢公子学安全 图片 图片 LVM ...

  6. Linux下磁盘分区卸载和磁盘配额

    转载自公众号:谢公子学安全 查看磁盘信息 fdisk : 这个命令是磁盘分区表操作工具,fdisk能将磁盘分区,同时也能为每个分区指定分区类型,总的来说,fdisk就是磁盘工具 · fdisk -l ...

  7. linux下C++编程学习

    前言(废话,可略过):之前一直在windows下做C++编程,后来换后台工作接触到linux下C++开发.期间磨磨唧唧浪费了很多时间.记录下历程,给后来的小伙伴提个醒,免得浪费宝贵时间. 一.关于换系 ...

  8. 您知道Linux下C语言编程的一些注意事项吗_教育中国

    您知道Linux下C语言编程的一些注意事项吗_教育中国 云风的 BLOG: 一个 C 接口设计的问题 一个 C 接口设计的问题 C 语言在本质上,参数传递都是值传递.不像 Pascal 和 C++ 可 ...

  9. g 最新编译器linux,Linux下安装gcc 、g++ 、gfortran编译器

    一.ubuntu下gcc/g++/gfortran的安装 1.安装 (1).gcc ubuntu下自带gcc编译器.可以通过"gcc -v"命令来查看是否安装. (2).g++ 安 ...

  10. Linux下cppcheck静态检测工具

    1. cppcheck工具说明: cppcheck工具是一个C/C++代码缺陷静态检查工具.它不仅可以检查代码中的语法错误,还可以检查出编译器检查不出来的缺陷,从而辅助提升代码质量. 2. Linux ...

最新文章

  1. 为office添加繁简体转换
  2. 3.11上午课程重点
  3. 利用一个样本估计类别数据分布,9行代码提高少样本学习泛化能力
  4. J2EE开发之常用开源框架介绍
  5. spingboot整合netty实现单聊整合实现
  6. 在线协作编辑OT算法简介
  7. 关于作者(《蓝调口琴指南》名作拙译)
  8. android手游开发三维地图高清版,全球地图3D模拟器
  9. ShadowGun 图形技术分析
  10. php新浪微博登录接口,php新浪微博登录接口用法实例
  11. Polynomial Commitments代码实现【2】——lovesh/kzg-poly-commit
  12. OpenFileDialog/SaveFileDialog 中 Filter用法?
  13. BurpSuite 安装配置(License Key)
  14. 依据Right-BICEP要求的对四则运算2的测试
  15. 银行钱数(带小数位)转大写
  16. SQL中数据类型转换
  17. 屏幕的单位如何计算机,如何查看您的计算机显示器有多少英寸
  18. 华为的全闪存存储之路
  19. 我们为什么要坚持写博客?
  20. 电磁场与仿真软件(20)

热门文章

  1. (转)他们才是全球高频交易顶级玩家
  2. 做开源,兴趣是最好的源动力 | 龙蜥开发者说第1期
  3. 阿里云祝顺民:云网络心智大图解读 | 云栖大会
  4. 重磅!阿里自研RISC-V处理器玄铁910成功运行安卓10,相关代码开源
  5. 阿里云智能基础产品事业部招聘高性能计算云产品研发与优化专家/高级专家
  6. 阿里、腾讯双双辟谣:云计算魅力彰显
  7. 2017中国云计算开源优秀案例
  8. 【优化算法】差分进化优化杂草优化(DIWO)【含Matlab源码 1482期】
  9. 【PM2.5预测】基于matlab灰色模型PM2.5预测【含Matlab源码 499期】
  10. 解决方案:Windows下修改hosts文件