zoukankan      html  css  js  c++  java
  • 利用unordered_map代替hash_map My Study

    利用unordered_map代替hash_map - My Study

    利用unordered_map代替hash_map

    • 实验环境
      1. 操作系统 fedora9
      2. 编译器版本 gcc4.3
    • 实验方式
      各种map使用插入和查找,比较速度和相关性能
    • 代码
      • 参考代码
      • 下面测试说明了速度之间的比较:
    map类型 插入速度 插入和查找速度
    hashmap0m0.123s0m0.369s
    map0m0.190s0m0.681s
    unordered_map0m0.123s0m0.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
    */

  • 相关阅读:
    python 统计gitlab代码量
    whistle 模拟用户网络超时
    Node.js 快速转换 url 链接
    实用的 Git 命令
    前端常用 prettier 配置 + vetur 配置
    vue 项目 eslint + prettier 配置
    lodash 方法 debounce 防连点 防抖按钮点击
    npm 包实现自动登录 CICD 流程
    git push --follow-tags 命令
    小程序 iOS webview 中网页使用 iframe 无法滚动问题
  • 原文地址:https://www.cnblogs.com/lexus/p/2938163.html
Copyright © 2011-2022 走看看