• <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>
            re: 安全的list[未登錄] PeakGao 2008-11-20 13:35
            @Jeff Chen
            你這種其實就是我上面說的這個意思:“再有一種辦法,就是對象要移除時,只設置一個需要移除的標志,在下一輪遍歷前才真正移除。”,不過你的說法好像有問題哦,遍歷時根本不知道是無效的Connection哦,而且不能在遍歷的過程中將節點移入到另一個列表,這樣會掛的
            re: 安全的list[未登錄] PeakGao 2008-11-18 08:58
            @不懂
            理論上是這樣,框架徹底的好就沒有問題,但是在游戲更新時,經常有生命期結束的對象,這樣的對象需要從地圖上面移除,就涉及到從列表中erase,而生命期結束是根據update的調用進行檢測的。當然可以有另一個辦法,就是將檢測放到一個時鐘里面,而不是在list的遍歷過程中,但是這樣會需要好多多余的時鐘。再有一種辦法,就是對象要移除時,只設置一個需要移除的標志,在下一輪遍歷前才真正移除。發現越說越復雜了,總之,這個功能就是用于list遍歷很復雜時,也能安全的工作。你的這幾行,參考我上面的,就一句it=list.erase(it)迭代器不需要臨時保存的!!
            for (std::list<int>::iterator it=list.begin(); it!=list.end();)
            {
            if (條件為真)
            {
            itTmp = it; // 多余
            ++itTmp; // 多余
            it = list.erase(it); // 刪除當前節點
            it = itTmp; // 多余
            }
            else
            ++it;
            }
            re: 安全的list[未登錄] PeakGao 2008-11-17 10:30
            @是什么
            是這樣的,當list的操作很簡單時,遍歷list幾乎沒有什么問題,也可以在遍歷的時候刪除當前節點,如:
            for (std::list<int>::iterator it=list.begin(); it!=list.end();)
            {
            if (條件為真)
            it = list.erase(it); // 刪除當前節點
            else
            ++it;
            }

            但是當這個list不是很簡單的遍歷時,而且刪除的時候也不是很顯式的在遍歷過程中時,就很容易出問題,如:

            void MapManager::update(...)
            {
            // typedef std::list<Entity*> DisplayList;
            for (DisplayList::iterator it=mDisplayList.begin(); it!=mDisplayList.end();)
            {
            (*it)->update(...);
            }
            }

            但是(*it)->update(...);會調用到另一個模塊中去了,可能會這樣調用:
            void Entity::update(...)
            {
            //...
            MapManager->removeEntity(this);
            }

            而removeEntity會涉及到erase節點:
            void MapManager::removeEntity(Entity* e)
            {
            mDisplayList.remove(e);
            }

            如果Entity的update方法中,發現自己的生命期已經結束的話,就會刪除自己,這樣MapManager::update里面就非法了,這是一個站在磚頭上拿掉磚頭的問題,必定非法。這個safelist就是為了支持在遍歷列表的過程中能安全的erase任何節點。

            可能你們沒有碰到該類問題,或者使用list的時候沒有那么復雜,所以一時沒法去了解。
            re: 一個小的搜索引擎 PeakGao 2007-11-10 19:56
            發郵件給你了,但是發現好像掉了幾個問題,呵呵
            re: 一個小的搜索引擎 PeakGao 2007-11-10 19:27
            加我QQ吧,交個朋友
            re: 一個小的搜索引擎 PeakGao 2007-11-10 19:24
            re: 一個小的搜索引擎 PeakGao 2007-11-10 19:16
            @&lt;a href=http://minidx.com&gt;minidxer&lt;/a&gt;
            發現你發帖好快啊,我還沒有編輯好,你的回復就來了,看你首頁才發現你搞全文檢索的,呵呵
            re: 有意轉讓一個搜索引擎 PeakGao 2007-11-10 17:37
            @&lt;a href=http://minidx.com&gt;minidxer&lt;/a&gt;
            原來寫了一個php的搜索功能,但是后來改了程序,就沒有繼續改,就寫了個COM,c++熟悉多了,php不是我的強項
            re: 有意轉讓一個搜索引擎 PeakGao 2007-11-10 17:35
            @&lt;a href=http://minidx.com&gt;minidxer&lt;/a&gt;
            分詞只有那么幾種有效的算法,呵呵,我也沒有時間去研究一種新的算法,只是為了速度做了改進而已。
            沒有search.php你還想直接運行exe啊,哈哈,連search.php都只是一個殼,內部調用的COM組件
            @Minidx全文檢索
            我最后是自己解析的html,這里提供一組測試數據供參考:

            三個URL提取器的性能比較,均連續進行3次,
            測試新華網主頁的url提取: parse www.xinhuanet.com

            提取器名稱 url數目 耗時(連續3組)
            正則表達式(RegexUrlProber) 854 767/561/598 ms
            微軟DOM(MsDomUrlProber) 952 1132/629/605 ms
            我們的(MyDomUrlProber) 952 16/18/15 ms

            從數據看,我自己寫的html解析程序速度是相當不錯的 :)
            re: 有意轉讓一個搜索引擎 PeakGao 2007-11-10 13:24
            @&lt;a href=http://minidx.com&gt;minidxer&lt;/a&gt;
            雖然分詞沒有海量的準,但是速度比它聲明的還快,經測試1581 bytes/ms,相當于 4743萬個漢字/分鐘,比海量的 2000萬字/分鐘 還快,呵呵,只是精度沒他的高,我的機器配置并不高:AMD Athlon 2500+,512M DDR內存
            re: 有意轉讓一個搜索引擎 PeakGao 2007-11-10 13:12
            @萬連文
            如果沒有用起來,估計有可能發布源代碼,但是沒有時間表
            @Minidx全文檢索

            執行效率不錯,當然比你用純API寫的差,畢竟為了框架的合理和跨平臺封裝,導致了不少的函數調用開銷,但這些對于應用來講可以忽略,除非你用在某些實時行特別高的地方
            @球記
            參看我的另一篇文章,哈哈,url:http://m.shnenglu.com/PeakGao/archive/2007/04/18/22209.html
            @shiningstar
            你好,已經上傳,下載地址:
            http://m.shnenglu.com/Files/PeakGao/xregex_source.rar
            @LOGOLS_

            這跟源代碼管理是2回事,我沒有說用這種方法代替源代碼管理,源代碼管理我用過vss,cvs和svn,但他們都會產生垃圾文件,當你拷貝代碼時,總是不好去掉這些垃圾文件,所以rar打包是一種干凈的備份
            @flyingxu
            放解決方案文件.sln所在目錄即可
            沒反應的話,看看你的rar.exe所在目錄設置是否正確
            @Starling

            asp.net不是很清楚,可能是類似下面的語法:

            // testAjax.aspx
            <%
            Response.Charset("GB2312");
            Response.Write('This is a test for mootools.Ajax,中文信息沒有亂碼');

            %>

            具體語法不記得了,以前稍稍學過asp.net,但是沒有用來應用,網上有很多這方面的帖子。
            re: HTML-加速、再加速 PeakGao 2007-04-05 11:52
            @夢在天涯
            搞游戲開發搞了6年,NND,可是沒有作總結,博客開的也遲,比較懶,最近在學php,想在互聯網方面拓展一下知識,呵呵,現在稍稍勤奮了點,給自己加顆星,:)
            @LOGOS
            是的,iterator會隨著節點的增刪而導致prev,next節點地址無效,你不要去真正記錄iterator的地址,記錄節點地址就可以了
            <2007年4月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            導航

            統計

            常用鏈接

            留言簿(9)

            隨筆分類(67)

            隨筆檔案(65)

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲香蕉网久久综合影视| 亚洲一级Av无码毛片久久精品| 77777亚洲午夜久久多人| 日韩AV无码久久一区二区| 亚洲精品乱码久久久久久中文字幕| 久久综合伊人77777麻豆| 久久久久亚洲精品天堂久久久久久 | 狠色狠色狠狠色综合久久| 99久久亚洲综合精品网站| 2020久久精品亚洲热综合一本 | 久久99国产精品99久久| 久久夜色精品国产www| 久久久av波多野一区二区| 久久久国产一区二区三区| 国产成人精品免费久久久久| 欧美日韩中文字幕久久久不卡| 午夜不卡久久精品无码免费| 久久久久国产一区二区三区| 熟妇人妻久久中文字幕| 国产精品久久久久乳精品爆| 久久精品国产亚洲av日韩| 亚洲欧美久久久久9999| 国产AV影片久久久久久| 国产一区二区三区久久精品| 97精品依人久久久大香线蕉97 | 久久精品一区二区三区AV| 国产精品久久久久影院嫩草| 久久人与动人物a级毛片| 天天影视色香欲综合久久| 久久精品这里只有精99品| 国产精品VIDEOSSEX久久发布| 久久青草国产手机看片福利盒子 | 无码人妻久久一区二区三区蜜桃 | 久久精品国产72国产精福利| 久久精品国产亚洲沈樵| 国产亚洲色婷婷久久99精品| 男女久久久国产一区二区三区| 久久精品中文字幕一区| 亚洲AV乱码久久精品蜜桃| 亚洲AV无一区二区三区久久| 久久精品国产欧美日韩99热|