• <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)論
              
            东京热TOKYO综合久久精品| 国内精品久久久久久不卡影院| 久久中文字幕精品| 亚洲狠狠婷婷综合久久蜜芽| 精品少妇人妻av无码久久| 久久精品国产一区二区三区不卡| 伊色综合久久之综合久久| 99久久人妻无码精品系列| 久久久噜噜噜久久中文字幕色伊伊| 青青草原综合久久大伊人导航| 久久无码人妻一区二区三区午夜| 99热成人精品热久久669| 亚洲伊人久久成综合人影院| 狠狠色丁香婷婷综合久久来| 九九精品久久久久久噜噜| 狠狠色综合久久久久尤物| 国产午夜免费高清久久影院| 久久精品国产亚洲AV久| 久久精品亚洲欧美日韩久久| 久久91综合国产91久久精品| 国产毛片欧美毛片久久久| 欧美日韩中文字幕久久久不卡 | 国产欧美久久一区二区| 久久99精品久久久久久秒播| 91久久婷婷国产综合精品青草| 久久天天躁狠狠躁夜夜2020一| 久久久久一级精品亚洲国产成人综合AV区| 国产精品久久午夜夜伦鲁鲁| 亚洲乱码中文字幕久久孕妇黑人 | 久久精品国产免费| 男女久久久国产一区二区三区| 亚洲欧美日韩精品久久亚洲区 | 久久偷看各类wc女厕嘘嘘| 亚洲国产日韩综合久久精品| 久久久久亚洲av成人无码电影 | 国产无套内射久久久国产| 91精品国产高清久久久久久91| 久久er国产精品免费观看2| 日本免费久久久久久久网站| 久久综合久久综合九色| 久久精品成人免费国产片小草|