linux下使用hash_map及STL总结
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总结相关推荐
- 如何在linux下检测内存泄漏
1.开发背景 在 windows 下使用 VC 编程时,我们通常需要 DEBUG 模式下运行程序,而后调试器将在退出程序时,打印出程序运行过程中在堆上分配而没有释放的内存信息,其中包括代码文件名.行号 ...
- Linux下几款C++程序中的内存泄露检查工具
Linux下编写C或者C++程序,有很多工具,但是主要编译器仍然是gcc和g++.最近用到STL中的List编程,为了检测写的代码是否会发现内存泄露,了解了一下相关的知识. 所有使用动态内存分配(dy ...
- mysql实现程序的动态链接_程序的链接和装入及Linux下动态链接的实现
链接器和装入器的基本工作原理 一个程序要想在内存中运行,除了编译之外还要经过链接和装入这两个步骤.从程序员的角度来看,引入这两个步骤带来的好处就是可以直接在程序中使用printf和errno这种有意义 ...
- 深入剖析 linux GCC 4.4 的 STL string
转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...
- Linux下逻辑卷LVM的管理和RAID磁盘阵列
Linux系统安全 | Linux下逻辑卷LVM的管理和RAID磁盘阵列 原创 谢公子 [谢公子学安全](javascript:void(0);) 昨天 转载自公众号:谢公子学安全 图片 图片 LVM ...
- Linux下磁盘分区卸载和磁盘配额
转载自公众号:谢公子学安全 查看磁盘信息 fdisk : 这个命令是磁盘分区表操作工具,fdisk能将磁盘分区,同时也能为每个分区指定分区类型,总的来说,fdisk就是磁盘工具 · fdisk -l ...
- linux下C++编程学习
前言(废话,可略过):之前一直在windows下做C++编程,后来换后台工作接触到linux下C++开发.期间磨磨唧唧浪费了很多时间.记录下历程,给后来的小伙伴提个醒,免得浪费宝贵时间. 一.关于换系 ...
- 您知道Linux下C语言编程的一些注意事项吗_教育中国
您知道Linux下C语言编程的一些注意事项吗_教育中国 云风的 BLOG: 一个 C 接口设计的问题 一个 C 接口设计的问题 C 语言在本质上,参数传递都是值传递.不像 Pascal 和 C++ 可 ...
- g 最新编译器linux,Linux下安装gcc 、g++ 、gfortran编译器
一.ubuntu下gcc/g++/gfortran的安装 1.安装 (1).gcc ubuntu下自带gcc编译器.可以通过"gcc -v"命令来查看是否安装. (2).g++ 安 ...
- Linux下cppcheck静态检测工具
1. cppcheck工具说明: cppcheck工具是一个C/C++代码缺陷静态检查工具.它不仅可以检查代码中的语法错误,还可以检查出编译器检查不出来的缺陷,从而辅助提升代码质量. 2. Linux ...
最新文章
- 为office添加繁简体转换
- 3.11上午课程重点
- 利用一个样本估计类别数据分布,9行代码提高少样本学习泛化能力
- J2EE开发之常用开源框架介绍
- spingboot整合netty实现单聊整合实现
- 在线协作编辑OT算法简介
- 关于作者(《蓝调口琴指南》名作拙译)
- android手游开发三维地图高清版,全球地图3D模拟器
- ShadowGun 图形技术分析
- php新浪微博登录接口,php新浪微博登录接口用法实例
- Polynomial Commitments代码实现【2】——lovesh/kzg-poly-commit
- OpenFileDialog/SaveFileDialog 中 Filter用法?
- BurpSuite 安装配置(License Key)
- 依据Right-BICEP要求的对四则运算2的测试
- 银行钱数(带小数位)转大写
- SQL中数据类型转换
- 屏幕的单位如何计算机,如何查看您的计算机显示器有多少英寸
- 华为的全闪存存储之路
- 我们为什么要坚持写博客?
- 电磁场与仿真软件(20)
热门文章
- (转)他们才是全球高频交易顶级玩家
- 做开源,兴趣是最好的源动力 | 龙蜥开发者说第1期
- 阿里云祝顺民:云网络心智大图解读 | 云栖大会
- 重磅!阿里自研RISC-V处理器玄铁910成功运行安卓10,相关代码开源
- 阿里云智能基础产品事业部招聘高性能计算云产品研发与优化专家/高级专家
- 阿里、腾讯双双辟谣:云计算魅力彰显
- 2017中国云计算开源优秀案例
- 【优化算法】差分进化优化杂草优化(DIWO)【含Matlab源码 1482期】
- 【PM2.5预测】基于matlab灰色模型PM2.5预测【含Matlab源码 499期】
- 解决方案:Windows下修改hosts文件