• <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>
            隨筆-90  評(píng)論-947  文章-0  trackbacks-0

            我作了雙向擴(kuò)充實(shí)現(xiàn)。昨天的方案是:

            先判斷插入的元素靠前還是靠后,靠哪邊就準(zhǔn)備往哪邊挪舊元素,然后檢查那頭有沒(méi)有空,沒(méi)空換另一頭,要是都沒(méi)空但兩頭加起來(lái)卻有空,那就重新調(diào)整位置,最后才重新分配空間。

            我原以為考慮得好周到,可是實(shí)現(xiàn)起來(lái)卻傻了眼。往末尾插入10萬(wàn)數(shù)據(jù),有9萬(wàn)多次發(fā)生移動(dòng)元素,不慢才怪。

             

            調(diào)整了下,變成:

            先判斷考前還是靠后,靠哪邊就往哪邊挪舊元素,如果那頭沒(méi)空,直接重新分配空間,空間按每次*3增長(zhǎng)直至足夠。

             

            這樣,push_back 的性能與 std::vector 以及 std::deque 的粗略比較如下(圖中的單位寫(xiě)錯(cuò)了,全是秒):

            image

            image

            image

            image

             

            insert(begin(), i) 比較:

            image

            image

            (vector 參與這項(xiàng)比較果然是不公平的,呵呵)

            image

            image

             

            insert 到 begin + size() / 2 處:

            image

            image

             

            resize 至固定大小,然后用 iterator 遍歷賦值:

            image

            image

            image

            image

            (今天回家了。以上測(cè)試都在家里的機(jī)器上做的,配置: AMD SP2500+ 1.4GHz,512MB RAM。)

             

            這樣的結(jié)果還算滿(mǎn)意的。不知道 vector 為什么能保持 push_back 如此高效~

            還有個(gè)挺奇怪的現(xiàn)象,使用 deque 的時(shí)候,如果數(shù)據(jù)量到百萬(wàn),臨退出前有好長(zhǎng)一段時(shí)間要等待,難道是 deque 在做某些析構(gòu)動(dòng)作?

            再呢。。貌似 deque 的 push_front 并沒(méi)有 vector 的 push_back 神么、、

             

            嗯……我的本意不是為了著重性能,而是嘗試些有著那么一套接口的東西出來(lái),同時(shí)也給自己用。現(xiàn)在來(lái)比性能只是為了論證一下實(shí)用程度如何,如此而已。

            具體實(shí)現(xiàn)代碼就不貼了,基本接口和上上篇里沒(méi)多少變化。等以后這方面的東西做完了再一起拿出來(lái)。

            posted on 2009-10-01 20:17 溪流 閱讀(347) 評(píng)論(1)  編輯 收藏 引用 所屬分類(lèi): C++

            評(píng)論:
            # re: 昨天傻掉了,是策略沒(méi)搞好 2009-10-12 18:38 | 陳梓瀚(vczh)
            你可以看看Delphi的TObjectList的實(shí)現(xiàn)。  回復(fù)  更多評(píng)論
              
            国产色综合久久无码有码| 亚洲综合婷婷久久| 99精品久久精品一区二区| 久久久久久亚洲Av无码精品专口 | 91麻精品国产91久久久久| 久久国产精品国产自线拍免费| 精品久久久久久国产三级| 欧美日韩精品久久免费| 亚洲国产精品婷婷久久| 久久久久高潮综合影院| 精品视频久久久久| 久久亚洲欧美国产精品| 久久久精品久久久久久 | 久久久久亚洲AV综合波多野结衣 | 亚洲国产精品婷婷久久| 久久久久亚洲国产| 国产精品成人精品久久久| 久久午夜羞羞影院免费观看| 久久精品成人| 国产成人综合久久精品尤物| 久久精品中文闷骚内射| 久久久久高潮综合影院| 思思久久99热免费精品6| 国产高潮久久免费观看| 久久精品国产精品亚洲精品| 久久亚洲精品国产精品| 久久中文字幕人妻丝袜| 色欲综合久久躁天天躁| 久久综合五月丁香久久激情| 久久久久久狠狠丁香| 国产精品一久久香蕉产线看 | 伊人久久大香线蕉综合Av | 国内精品久久久久久久久| avtt天堂网久久精品| 男女久久久国产一区二区三区| 久久AV无码精品人妻糸列| 伊人情人综合成人久久网小说| 天天综合久久一二三区| 女人高潮久久久叫人喷水| 久久WWW免费人成一看片| 天堂久久天堂AV色综合|