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

            麒麟子

            ~~

            導(dǎo)航

            <2009年2月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            1234567

            統(tǒng)計(jì)

            常用鏈接

            留言簿(12)

            隨筆分類

            隨筆檔案

            Friends

            WebSites

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            #

            冒泡排序與選擇排序的不同、快速排序與選擇排序的結(jié)合

                 摘要: 目前廣為使用的快速排序和選擇排序聯(lián)合使用,也會(huì)有意想不到的提升!
            眾所周知,當(dāng)用快速排序法排序時(shí),劃分到很細(xì)的時(shí)候,明顯很虧。 比如:兩三個(gè)數(shù)排序卻要?jiǎng)澐殖蓛啥眩@樣很劃不來。所以,我們可以設(shè)定一個(gè)閥值,當(dāng)快速排序劃分到一定粒度的時(shí)候,便采用選擇排序。 至于這個(gè)閥值,可以通過performace來測(cè)試,以得到一個(gè)“最優(yōu)值”

              閱讀全文

            posted @ 2010-05-04 23:44 麒麟子 閱讀(2278) | 評(píng)論 (3)編輯 收藏

            某內(nèi)存池中的指針用法

            內(nèi)存池實(shí)現(xiàn)有許多種,各有不同的優(yōu)缺點(diǎn)。

            這里不是主要說內(nèi)存池,只是覺得這個(gè)內(nèi)存池中的指針用得很飄逸!

             

             1template <class T,int AllocSize = 50>   
             2class MemPool   
             3{   
             4public:   
             5    static void* operator new(size_t allocLength)   
             6    {   
             7        if(!mStartPotinter)   
             8        {   
             9            MyAlloc();   
            10        }
               
            11        //將當(dāng)前指向空閑內(nèi)存起始地址作為反回地址   
            12        unsigned char* p = mStartPotinter;   
            13        //取出空閑區(qū)域前4字節(jié)的值,賦值給空閑地址   
            14        //因?yàn)榍八淖止?jié)中存放了下一個(gè)BLOCK的地址   
            15        mStartPotinter = *(unsigned char**)mStartPotinter;   
            16        return p;   
            17    }
               
            18  
            19    static void operator delete(void* deleteP)   
            20    {   
            21//      assert(deletePointer);   
            22        *(unsigned char**)deleteP = mStartPotinter;   
            23        mStartPotinter = (unsigned char*)deleteP;   
            24    }
               
            25  
            26    static void MyAlloc()   
            27    {   
            28        //預(yù)分配內(nèi)存   
            29        mStartPotinter = new unsigned char[sizeof(T)*AllocSize];   
            30        //構(gòu)造BLOCK之間的關(guān)系    
            31        //每個(gè)BLOCK的前4BYTE存放了下一個(gè)BLOCK的地址   
            32        unsigned char** next = (unsigned char**)mStartPotinter;   
            33        unsigned char* p = mStartPotinter;   
            34  
            35        for(int i = 0; i< AllocSize;++i)   
            36        {   
            37            p +=sizeof(T);//步進(jìn)   
            38            *next = p;//賦值   
            39            next = (unsigned char**)p;//步進(jìn)   
            40        }
               
            41        *next = NULL;   
            42    }
               
            43  
            44    static unsigned char* mStartPotinter;   
            45}
            ;   
            46  
            47template <class T,int AllocSize>   
            48unsigned char* MemPool<T,AllocSize>::mStartPotinter = NULL;  
            49
            50
            51本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/wqjqepr/archive/2010/05/03/5552322.aspx

             

             

            簡(jiǎn)單提示一下: unsigned char** next = (unsigned char**)mStartPotinter;

            mStartPotinter作為二維指針的時(shí)候,相當(dāng)于是一系列的unsigned char* [].

            對(duì)于第一個(gè) *next 相當(dāng)于(unsigned char*)mStartPointer[0].

            第二個(gè)相當(dāng)于(unsigned char*)mStartPointer[sizeof(T)*1];

            第三個(gè)相當(dāng)于(unsigned char*)mStartPointer[sizeof(T)*2];

            所以,構(gòu)造BLOCK之間關(guān)系的時(shí)候,也可以寫成

             

            1for(int i = 0; i< AllocSize;++i)   
            2{   
            3 p +=sizeof(T);//步進(jìn)   
            4 unsigned char* pp = (unsigned char*)(p[sizeof(T)*i]);   
            5 pp = p;//賦值   
            6}
             

             

             

            不想多解釋了,累。估計(jì)多看幾分種啥都明白了!

             

             

            posted @ 2010-05-03 18:33 麒麟子 閱讀(1968) | 評(píng)論 (11)編輯 收藏

            函數(shù)中分配內(nèi)存的問題

                 摘要: 只是為了能夠讓自己講清一些事!

            大家都知道,如果想要在在C++的函數(shù)中分配內(nèi)存,那么就只得使用指針的引用傳遞,或是二級(jí)指針

            如:void MyNew(int** p)
            {
            *p = new int;
            }
            void MyNew(int*& p)
            {
            p = new int;
            }


              閱讀全文

            posted @ 2010-04-27 22:52 麒麟子 閱讀(1767) | 評(píng)論 (11)編輯 收藏

            [轉(zhuǎn)]C++ 對(duì)象的內(nèi)存布局

                 摘要: 這是陳皓繼《C++虛函數(shù)表解析》之后的又一大作。
            講述了C++對(duì)象在以下情況的內(nèi)存布局。值得一看!
            1)有成員變量的情況。

            2)有重復(fù)繼承的情況。

            3)有虛擬繼承的情況。

            4)有鉆石型虛擬繼承的情況。

            還有,對(duì)于前幾天的貼子表示報(bào)歉,今天是直接貼到這里的。 沒亂碼,還好!!!  閱讀全文

            posted @ 2010-04-27 20:56 麒麟子 閱讀(2246) | 評(píng)論 (5)編輯 收藏

            [原]譯:一個(gè)游戲引擎所應(yīng)具有的元素

                 摘要: 3D游戲引擎設(shè)計(jì)是一項(xiàng)巨大的軟件工程。一個(gè)人也能寫出一個(gè)游戲,但這不只是熬一兩個(gè)晚上便能搞定的,你很可能會(huì)出寫出幾兆的源代碼量。如果你沒有持久的信念與激情,你早晚會(huì)放棄。 當(dāng)然,別指望你的第一次嘗試就能寫出完整的引擎,選擇一個(gè)對(duì)引擎需求較小的項(xiàng)目。努力,你就能成功。  閱讀全文

            posted @ 2010-04-26 23:34 麒麟子 閱讀(2178) | 評(píng)論 (11)編輯 收藏

            僅列出標(biāo)題
            共38頁: First 14 15 16 17 18 19 20 21 22 Last 
            久久婷婷国产剧情内射白浆| 久久99精品国产麻豆| 97久久超碰国产精品2021| 亚洲国产美女精品久久久久∴| 亚洲国产精品无码久久九九 | 久久成人18免费网站| 国产成人综合久久综合 | 久久永久免费人妻精品下载| 无码精品久久久久久人妻中字| 久久久久久久波多野结衣高潮| 色综合久久夜色精品国产| 成人综合久久精品色婷婷| 人妻久久久一区二区三区| 精品久久久久久久久午夜福利| 久久99免费视频| 国产精品内射久久久久欢欢| 久久久WWW免费人成精品| 久久只这里是精品66| 久久夜色精品国产网站| 青青热久久综合网伊人| 色婷婷久久久SWAG精品| 亚洲国产精品无码久久SM| 久久免费高清视频| 午夜精品久久久久成人| 精品国产VA久久久久久久冰| 国产国产成人久久精品| 国产精品久久久久蜜芽| 国产精品美女久久久| 亚洲日本va午夜中文字幕久久| 亚洲AV乱码久久精品蜜桃| 香蕉久久夜色精品国产小说| 久久婷婷五月综合国产尤物app| 狠狠久久亚洲欧美专区| 亚洲性久久久影院| 成人精品一区二区久久| 蜜臀久久99精品久久久久久小说| 久久久亚洲精品蜜桃臀 | 久久久久18| 精品久久久久久综合日本| 久久中文字幕精品| 国产精品美女久久久免费|