青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Focus on ACE

訂閱 ace-china
電子郵件:
瀏覽存于 groups.google.com 上的所有帖子

C++博客 首頁 新隨筆 聯系 聚合 管理
  64 Posts :: 3 Stories :: 22 Comments :: 0 Trackbacks

STL中map與hash_map容器的選擇

作者 alvin_lee @ 2005-06-21 17:43:38

  實際上這個問題不光C++會遇到,其他所有語言的標準容器的實現及選擇上都是要考慮的。做應用程序你可能覺得影響不大,但是寫算法或者核心代碼就要小心了。今天改進代碼,順便又來溫習基礎功課了。


  還記得Herb Sutter那極有味道的《C++對話系列》么,在其中《產生真正的hash對象》這個故事里就講了map的選擇。順便回顧一下,也講一下我在實用中的理解。

  選擇map容器,是為了更快的從關鍵字查找到相關的對象。與使用list這樣的線性表容器相比,一可以簡化查找的算法,二可以使任意的關鍵字做索引,并與目標對象配對,優化查找算法。在C++的STL中map是使用樹來做查找算法,這種算法差不多相當與list線性容器的折半查找的效率一樣,都是O(log2N),而list就沒有map這樣易定制和操作了。

  相比hash_map,hash_map使用hash表來排列配對,hash表是使用關鍵字來計算表位置。當這個表的大小合適,并且計算算法合適的情況下,hash表的算法復雜度為O(1)的,但是這是理想的情況下的,如果hash表的關鍵字計算與表位置存在沖突,那么最壞的復雜度為O(n)。

  那么有了這樣的認識,我們應該怎么樣選用算法呢?前兩天看Python文章的時候,不知道哪個小子說Python的map比c++的map快,如何如何的。但是他并不知道Python是默認使用的hash_map,而且這些語言特征本質上是使用c/c++寫出來的,問題在與算法和手段,而不是在于語言本身的優劣,你熟悉了各種算法,各種語言的細節、設計思想,還能在這偏激的嚷嚷孰好孰壞(片面與偏激的看待事物只能表明愚昧與無知,任何事物都有存在的價值,包括技術)。顯然C++的STL默認使用樹結構來實現map,是有考究的。

  樹查找,在總查找效率上比不上hash表,但是它很穩定,它的算法復雜度不會出現波動。在一次查找中,你可以斷定它最壞的情況下其復雜度不會超過O(log2N)。而hash表就不一樣,是O(1),還是O(N),或者在其之間,你并不能把握。假若你在開發一個供外部調用的接口,其內部有關鍵字的查找,但是這個接口調用并不頻繁,你是會希望其調用速度快、但不穩定呢,還是希望其調用時間平均、且穩定呢。反之假若你的程序需要查找一個關鍵字,這個操作非常頻繁,你希望這些操作在總體上的時間較短,那么hash表查詢在總時間上會比其他要短,平均操作時間也會短。這里就需要權衡了。

  這里總結一下,選用map還是hash_map,關鍵是看關鍵字查詢操作次數,以及你所需要保證的是查詢總體時間還是單個查詢的時間。如果是要很多次操作,要求其整體效率,那么使用hash_map,平均處理時間短。如果是少數次的操作,使用hash_map可能造成不確定的O(N),那么使用平均處理時間相對較慢、單次處理時間恒定的map,考慮整體穩定性應該要高于整體效率,因為前提在操作次數較少。如果在一次流程中,使用hash_map的少數操作產生一個最壞情況O(N),那么hash_map的優勢也因此喪盡了。

posted on 2006-04-25 09:25 Stone Jiang 閱讀(1520) 評論(0)  編輯 收藏 引用 所屬分類: C++&OOPMiscellaneous
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99视频有精品| 久久久欧美一区二区| 久久爱www.| 日韩网站在线| 99精品欧美一区二区三区| 美女国产一区| 另类成人小视频在线| 国产欧美一区二区三区久久人妖| 亚洲人体偷拍| 亚洲一区二区毛片| 午夜日韩在线| 亚洲国产欧美一区二区三区久久| 久久久综合网| 一本色道**综合亚洲精品蜜桃冫| 久久精品国语| 亚洲久色影视| 国产一区二区在线免费观看| 正在播放亚洲| 欧美www视频在线观看| 在线亚洲激情| 国精品一区二区三区| 在线精品福利| 国产农村妇女毛片精品久久莱园子| 国产日韩欧美一区| 国产精品v欧美精品v日韩| 久久久91精品国产一区二区精品| 亚洲一二三区在线| 亚洲国产黄色| 欧美影院久久久| 亚洲最快最全在线视频| 在线观看91精品国产麻豆| 国产精品任我爽爆在线播放| 麻豆成人综合网| 欧美体内she精视频| 久久久综合香蕉尹人综合网| 欧美日韩高清在线播放| 老司机免费视频久久| 性久久久久久久| 亚洲亚洲精品三区日韩精品在线视频| 久久精品人人爽| 欧美日韩在线不卡| 欧美日韩一区二区三区在线视频 | 国内揄拍国内精品久久| 欧美视频在线观看视频极品| 红桃视频一区| 欧美一级理论性理论a| 亚洲欧美精品伊人久久| 中日韩美女免费视频网址在线观看| 亚洲黄色影片| 久久全国免费视频| 亚洲免费一在线| 久久久久亚洲综合| 久久青草久久| 亚洲一区二区高清| 亚洲少妇自拍| 欧美肥婆在线| 亚洲国产精品999| 欧美99久久| 亚洲一区在线免费| 国产精品久久福利| 国产精品久久二区二区| 妖精视频成人观看www| 欧美a级一区| 欧美专区在线| 麻豆freexxxx性91精品| 国产欧美一区二区精品性色| 欧美与黑人午夜性猛交久久久| 亚洲视频在线观看三级| 国产精品久线观看视频| 国精产品99永久一区一区| 亚洲欧美国产一区二区三区| 99国产精品自拍| 欧美视频一区二区| 亚洲欧美在线aaa| 午夜精品久久久久久久99樱桃| 久久天天综合| 欧美日韩中文字幕在线| 亚洲特色特黄| 亚洲午夜国产一区99re久久| 国产精品男gay被猛男狂揉视频| 欧美在线免费视屏| 亚洲美女中文字幕| 国产精品九九| 久久精品在线播放| 日韩小视频在线观看专区| 欧美日韩在线三区| 久久都是精品| 欧美成人三级在线| 国产日韩精品一区观看| 免费成人性网站| 亚洲一区二区免费在线| 国产一区二区三区黄| 久久躁狠狠躁夜夜爽| 亚洲欧洲综合| 久久一区中文字幕| 亚洲天天影视| 久久久美女艺术照精彩视频福利播放| 亚洲欧洲日韩综合二区| 久久亚洲综合色一区二区三区| 蜜桃av一区二区| 午夜精品久久久久久久久久久久久| 久久九九有精品国产23| 国产精品99久久久久久久女警| 午夜视频久久久| 99视频国产精品免费观看| 欧美亚洲免费| 国产精品丝袜白浆摸在线| 美女精品一区| 国产精品国产三级国产普通话三级 | 亚洲午夜精品久久久久久浪潮| 亚洲激情影院| 国产午夜精品一区二区三区欧美| 亚洲黄色天堂| 在线成人性视频| 亚洲在线观看免费视频| 一本久道久久综合狠狠爱| 久久久久久久一区二区三区| 亚洲在线观看免费视频| 欧美性猛交99久久久久99按摩| 老鸭窝亚洲一区二区三区| 国产精品国产三级国产专播精品人 | 久久久久看片| 亚洲午夜三级在线| 农夫在线精品视频免费观看| 永久域名在线精品| 亚洲永久在线观看| 亚洲视频一二三| 麻豆成人在线播放| 看欧美日韩国产| 国产亚洲精品一区二区| 亚洲永久在线| 午夜日韩激情| 国产精品综合av一区二区国产馆| 亚洲视频免费| 欧美日产在线观看| 亚洲欧洲一区二区天堂久久 | 久久久夜夜夜| 久久亚洲高清| 极品日韩久久| 欧美成人免费va影院高清| 国产亚洲一区二区三区在线播放 | 欧美 日韩 国产 一区| 久久天天狠狠| 尤物九九久久国产精品的分类| 欧美诱惑福利视频| 麻豆av一区二区三区| 亚洲福利视频网| 亚洲精品美女久久7777777| 亚洲黄色成人| 欧美日韩mv| 亚洲在线视频免费观看| 久久国内精品自在自线400部| 国产真实乱偷精品视频免| 久久精品道一区二区三区| 国产精品高潮视频| 日韩一级大片| 小黄鸭精品aⅴ导航网站入口| 国产精品免费小视频| 亚洲午夜一区二区三区| 久久精品国产成人| 一区二区三区亚洲| 欧美精品一区二区久久婷婷| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲精品乱码视频| 一本一道久久综合狠狠老精东影业| 99re66热这里只有精品3直播| 欧美色欧美亚洲另类二区| 亚洲一区二区免费视频| 久久亚洲一区二区三区四区| 亚洲精品免费在线播放| 国产精品国产三级国产aⅴ入口 | 免费久久99精品国产| 亚洲卡通欧美制服中文| 国产精品一区二区欧美| 久久色在线观看| 日韩视频第一页| 久久免费精品日本久久中文字幕| 亚洲精品久久久蜜桃| 国产欧美精品久久| 欧美刺激午夜性久久久久久久| 亚洲一二三四久久| 亚洲黄色av| 久久亚洲国产精品一区二区| 中国女人久久久| 亚洲经典一区| 黄色国产精品| 国产日韩精品一区二区三区在线 | 欧美成人按摩| 欧美一级久久| 亚洲午夜久久久| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲视频网站在线观看| 欧美国产日韩免费| 曰韩精品一区二区| 国产精品露脸自拍| 欧美日韩国产精品| 久久久久久91香蕉国产| 亚洲专区在线视频| 亚洲乱亚洲高清| 正在播放亚洲一区|