• <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 
            一级做a爰片久久毛片16| 四虎亚洲国产成人久久精品| 久久国产亚洲精品无码| 国产亚洲婷婷香蕉久久精品| 久久久久亚洲AV无码专区网站 | 综合久久久久久中文字幕亚洲国产国产综合一区首 | 麻豆av久久av盛宴av| 婷婷综合久久中文字幕蜜桃三电影| 久久精品aⅴ无码中文字字幕不卡| 99久久国产亚洲高清观看2024| 久久99久国产麻精品66| 中文字幕亚洲综合久久| 久久亚洲私人国产精品vA| 久久中文精品无码中文字幕| 欧美久久精品一级c片片| 亚洲精品乱码久久久久久按摩| 久久无码国产| 久久97久久97精品免视看秋霞| 91精品国产色综合久久| 亚洲AV无码久久精品蜜桃| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 国产精品一区二区久久不卡| 久久精品综合一区二区三区| 国产精品久久久久影视不卡| 一本久久a久久精品亚洲| 久久午夜夜伦鲁鲁片免费无码影视| 国产激情久久久久影院老熟女免费 | 国产福利电影一区二区三区,免费久久久久久久精 | 久久精品国产2020| 看全色黄大色大片免费久久久| 国产精品嫩草影院久久| 99久久精品这里只有精品| 色综合色天天久久婷婷基地| 久久成人影院精品777| 久久久久一区二区三区| 久久天堂电影网| 久久精品视频91| 国产精品久久久香蕉| 精品久久亚洲中文无码| 久久久久久无码Av成人影院 | 久久精品国产福利国产琪琪 |