• <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>

            colorful

            zc qq:1337220912

             

            std::map查詢效率優(yōu)化

            0.現(xiàn)狀,數(shù)據(jù)是個xml文件,每個節(jié)點對應的結構體有10個成員變量,共有2000多條數(shù)據(jù),用的std::map<string, struct>來保存,用map的find函數(shù)進行搜索時的效率極

             

            其低下,循環(huán)搜索30條數(shù)據(jù)竟然要20s+,搓死。

             

            1.為什么這么慢?

            最初懷疑是std::map的效率問題,正考慮是否使用std::hast_map來替換,于是了解下兩者之間的差別:

            std::map是個自平衡的紅黑樹,他的效率是平均的

            hash_map的是一個hash表,只要你的hash算法足夠唯一,你的效率可以達到O(1)

             

            翻書時大牛就在旁邊,就問了他,把情況和他一說。他立刻點名:

            用hash_map的效率確實會比map的高,但你的數(shù)據(jù)才2000多,兩者在這里數(shù)量級上的效率差異應該很小。主要的問題應該在于你的map,你的map的value不是一個指針

             

            ,而是一個大結構體,這會導致搜索時的內存頻繁被交換出去,因而導致效率低下。

             

            2.按照大牛的建議,修改,測試,消耗的時間由原來的20s+變成了0

            posted on 2012-07-21 22:14 多彩人生 閱讀(4730) 評論(1)  編輯 收藏 引用

            評論

            # re: std::map查詢效率優(yōu)化 2014-05-05 10:09 coderchen

            good  回復  更多評論   

            導航

            統(tǒng)計

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            看全色黄大色大片免费久久久| 97精品依人久久久大香线蕉97| 久久精品一区二区三区不卡| 97热久久免费频精品99| 久久WWW免费人成—看片| 久久国内免费视频| 69SEX久久精品国产麻豆| 开心久久婷婷综合中文字幕| 亚洲AV无码成人网站久久精品大| 久久综合给合久久国产免费| 免费观看久久精彩视频| 亚洲欧美日韩精品久久亚洲区| 日本久久久久亚洲中字幕| 久久精品成人免费观看97| 久久亚洲精精品中文字幕| 久久强奷乱码老熟女网站| 久久亚洲国产成人精品性色| 久久久久亚洲AV成人网| jizzjizz国产精品久久| 亚洲国产综合久久天堂| 日本三级久久网| 久久久久久亚洲精品成人| 亚洲精品高清一二区久久| 四虎国产永久免费久久| 久久久婷婷五月亚洲97号色| 亚洲午夜福利精品久久| 亚洲精品无码久久不卡| 国产精品免费福利久久| 精品人妻伦九区久久AAA片69| 久久人人爽人人爽人人片AV东京热| 久久综合欧美成人| 久久精品国产色蜜蜜麻豆| 色综合久久天天综合| 青青青国产精品国产精品久久久久| 久久99亚洲网美利坚合众国| 污污内射久久一区二区欧美日韩| 精品久久久久久久久午夜福利| 国产精品亚洲美女久久久| 久久天天躁夜夜躁狠狠躁2022| 久久国产乱子伦精品免费午夜| 精品久久久久久国产|