linux下使用hash_map及STL总结
来源:互联网 发布:数据库日志恢复 编辑:程序博客网 时间:2024/04/27 23:39
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 c++ stl hash_map basic_string 使用
- Linux 下hash_map的使用
- Linux下hash_map的使用
- Linux 下hash_map的使用
- STL之hash_map总结
- STL hash_map使用
- STL hash_map使用
- STL hash_map使用
- STL hash_map使用
- STL hash_map使用
- STL hash_map使用
- STL hash_map使用
- STL hash_map使用
- c++ STL hash_map 使用
- STL hash_map使用
- STL hash_map使用
- STL hash_map使用
- vector,list,deque区别
- iframe下页面传参数为乱码
- 字符串用指针和数组的区别
- 操作系统课程设计和实验
- perl学习笔记
- linux下使用hash_map及STL总结
- 同时访问不同网段的主机
- 关于阶乘的几道智力题
- Linux 条件变量 pthread_cond_wait
- [哈尔滨工业大学LabWindows_CVI]实验学习一
- Codeforces Round #179 (Div. 2)——C
- Solution for Introduction to Algorithms (3rd Edition) Exercise 26.4-2
- C# 数据库操作
- 动态内存分配 new,delete