• hash_map,map,unordered_map效率



    利用unordered_map代替hash_map

    • 实验环境
      1. 操作系统 fedora9
      2. 编译器版本 gcc4.3
    • 实验方式
      各种map使用插入和查找,比较速度和相关性能
    
    • 代码
    map类型 插入速度 插入和查找速度
    hashmap 0m0.123s 0m0.369s
    map 0m0.190s 0m0.681s
    unordered_map 0m0.123s 0m0.315s

    • 为什么要使用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.

    /* 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

  • 相关阅读:
    1. C/C++项目一
    3. C/C++笔试面试经典题目三
    1. C/C++笔试面试经典题目一
    Win7下C/C++跨平台开发工具IDE的安装之Eclipse-CDT
    Win7下C/C++跨平台开发工具IDE的安装之CodeBlocks
    css
    form表单,选择器
    html介绍
    元类
    事务、视图、触发器、存储过程、函数、数据库的备份
  • 原文地址:https://www.cnblogs.com/freeopen/p/5482940.html
Copyright © 2020-2023  润新知