利用unordered_map代替hash_map - My Study
2013-03-01 10:12
507 查看
利用unordered_map代替hash_map - My Study
编译器版本 gcc4.3
实验方式
下面测试说明了速度之间的比较:
为什么要使用unordered_map代替hash_map?因为标准化的推进,unordered_map原来属于boost分支和std::tr1中,而hash_map属于非标准容器。
另外,使用之后,感觉速度和hash_map差不多,但是支持string做key,也可以使用复杂的对象作为key。
gxx需要添加编译选项:-std=gnu++0x或者-std=c++0x
在/usr/include/c++/4.3.0/backward/backward_warning.h文件中,明确写道:
This file includes at least one deprecated or antiquated header which \ may be removed without further notice at a future date. Please use a \ non-deprecated interface with equivalent functionality instead. For a \ listing of replacement headers and interfaces, consult the file \ backward_warning.h. To disable this warning use -Wno-deprecated.
利用unordered_map代替hash_map
实验环境 操作系统 fedora9编译器版本 gcc4.3
实验方式
各种map使用插入和查找,比较速度和相关性能代码 参考代码
下面测试说明了速度之间的比较:
map类型 | 插入速度 | 插入和查找速度 |
---|---|---|
hashmap | 0m0.123s | 0m0.369s |
map | 0m0.190s | 0m0.681s |
unordered_map | 0m0.123s | 0m0.315s |
另外,使用之后,感觉速度和hash_map差不多,但是支持string做key,也可以使用复杂的对象作为key。
gxx需要添加编译选项:-std=gnu++0x或者-std=c++0x
在/usr/include/c++/4.3.0/backward/backward_warning.h文件中,明确写道:
This file includes at least one deprecated or antiquated header which \ may be removed without further notice at a future date. Please use a \ non-deprecated interface with equivalent functionality instead. For a \ listing of replacement headers and interfaces, consult the file \ backward_warning.h. To disable this warning use -Wno-deprecated.
/* A list of valid replacements is as follows:Use: Instead of:
<sstream>, basic_stringbuf <strstream>, strstreambuf
<sstream>, basic_istringstream <strstream>, istrstream
<sstream>, basic_ostringstream <strstream>, ostrstream
<sstream>, basic_stringstream <strstream>, strstream
<unordered_set>, unordered_set <ext/hash_set>, hash_set
<unordered_set>, unordered_multiset <ext/hash_set>, hash_multiset
<unordered_map>, unordered_map <ext/hash_set>, hash_map
<unordered_map>, unordered_multimap <ext/hash_set>, hash_multimap
<functional>, bind <functional>, binder1st
<functional>, bind <functional>, binder2nd
<functional>, bind <functional>, bind1st
<functional>, bind <functional>, bind2nd
<memory>, unique_ptr <memory>, auto_ptr
*/
<sstream>, basic_stringbuf <strstream>, strstreambuf
<sstream>, basic_istringstream <strstream>, istrstream
<sstream>, basic_ostringstream <strstream>, ostrstream
<sstream>, basic_stringstream <strstream>, strstream
<unordered_set>, unordered_set <ext/hash_set>, hash_set
<unordered_set>, unordered_multiset <ext/hash_set>, hash_multiset
<unordered_map>, unordered_map <ext/hash_set>, hash_map
<unordered_map>, unordered_multimap <ext/hash_set>, hash_multimap
<functional>, bind <functional>, binder1st
<functional>, bind <functional>, binder2nd
<functional>, bind <functional>, bind1st
<functional>, bind <functional>, bind2nd
<memory>, unique_ptr <memory>, auto_ptr
*/
相关文章推荐
- hash_map将移除,需要用unordered_map代替hash_map
- map、hash_map和unordered_map
- hash_map和unordered_map的使用
- Linux下map hash_map和unordered_map效率比较
- unordered_map map hash_map
- map,hash_map和unordered_map 实现比较
- map,hash_map和unordered_map 实现比较
- hash_map->unordered_map
- map unordered_map hash_map比一比
- map,hash_map和unordered_map 实现比较
- hash_map vs unordered_map vs map vs unordered_set
- STL unordered_map(hash_map)详解
- Linux下map、hash_map和unordered_map效率比较
- 例说数据结构&STL(十一)——hash_map/unordered_map
- Linux下map hash_map和unordered_map效率比较
- hash_map/unordered_map原理和使用
- 关于map、hash_map 和 unordered_map 的简单性能测试
- hash_map/unordered_map原理和使用整理
- map,hash_map和unordered_map 实现比较
- Linux下map hash_map和unordered_map效率比较