• <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>
            OnTheWay2012
            埋葬昨天的我,迎來重生的我!
            posts - 15,  comments - 89,  trackbacks - 0
            re: 鏈表實(shí)驗(yàn) OnTheWay 2011-01-09 07:45
            我依據(jù)你寫的這篇文章也發(fā)表了一篇文章,可能解決你的問題,有空的時(shí)候請(qǐng)到我博客看一下。
            @GunsNRose
            說“#re: 一種線程安全的單例模式實(shí)現(xiàn)方式 傻逼實(shí)現(xiàn)也好意思貼出來?丟人現(xiàn)眼”這句話的人的名字也是叫“GunsNRose”,可能是碰巧和你重名。
            @OwnWaterloo
            我覺得不是線程安全的,原因如下:
            在你給出的代碼中類S中的函數(shù)(雖然現(xiàn)在我還沒有想不出這種函數(shù))可能不是線程安全的。

            我的MSN是wwj_5_209@163.com,能否加我一下,我們討論一下。
            @OwnWaterloo
            您好,首先感謝您對(duì)本隨筆的關(guān)注。懇請(qǐng)您說詳細(xì)一點(diǎn),我不太明白哪些地方還不是線程安全的。
            還沒仔細(xì)看,但是能夠?qū)戇@么多就很不錯(cuò)了。
            加油!
            @vane
            以下代碼是根據(jù)我的方法寫出來的:
            unsigned int Drink(unsigned int nBottleNum)
            {
            unsigned int nTotal = 0;

            unsigned int nBitNum = 1;
            for(double i = 1 ; i < sizeof(nBottleNum) * 8.0 ; i++)
            {
            if(pow(2.0, i) > nBottleNum)
            {
            nBitNum = static_cast<int>(i);
            break;
            }
            }

            for (unsigned int i = 1 ; i <= nBottleNum ; i++)
            {
            unsigned int nMask = 1;
            cout<<"第"<<i<<"瓶水被以下老鼠喝了"<<flush;
            for (unsigned int j = 1 ; j <= nBitNum ; j++)
            {
            if (0 != (nMask & i))
            {
            nTotal++;
            cout<<j<<" ";
            }

            nMask <<= 1;
            }
            cout<<endl;
            }

            return nTotal;
            }

            我比較愚鈍,經(jīng)過3個(gè)多小時(shí)的思考后我明白了2分法,謝謝你讓我又明白了一種方法
            @vane
            我不太明白您說的二分法是什么意思,能不能舉個(gè)例子?
            另外你再仔細(xì)多看幾遍我說的方法的話,可能會(huì)看懂。
            @小時(shí)候可靚了
            也謝謝你的關(guān)注
            @marco
            非常感謝,終于讓我明白了。
            template<int T>
            int smstrlen(char*p)
            {
            if(p[T]==0)
            return T;
            return smstrlen<T+1>(p);
            }

            想到這種方法很不錯(cuò)!我沒有想到。
            不過這種方法只是把遞歸的邏輯改成了模板實(shí)現(xiàn),并且需要
            template<>
            int smstrlen<500>(char*p)
            {
            if(p[500]==0)
            return 500;
            return -1;
            }
            這個(gè)特化的模板來結(jié)束編譯器的遞歸推導(dǎo)過程。

            此種解法的思想很好,不過此種方法存在的限制比遞歸還嚴(yán)重(需要特化,而這種特化太大了不好,太小了又可能出現(xiàn)問題)。


            一下是使用尾遞歸的一種實(shí)現(xiàn):
            int MyStelen(char *str, int size = 0)
            {
            return (*str++ == '\0') ? size : MyStelen(str, size + 1);
            }

            這種尾遞歸,不存在stack over flow的問題。不過沒有多大實(shí)際意義,僅僅具有學(xué)術(shù)討論價(jià)值,還是使用循環(huán)的方式比較好。
            訪問非法內(nèi)存的意思是:訪問了你沒有權(quán)限操作的內(nèi)存,或者說是你不應(yīng)該操作的內(nèi)存。
            (int *)&p - sizeof(int) * 2 ,這句代碼就是訪問了不應(yīng)該訪問的內(nèi)存 ,雖然是 - sizeof(int) * 2。
            這種操作是依據(jù)于實(shí)現(xiàn)的,是危險(xiǎn)的操作,當(dāng)然了訪問非法內(nèi)存并一定會(huì)死機(jī)。
            最后出題人給出的算是答案嗎?!
            假如給定的字符串有1億個(gè)字符,那么是否需要寫1億個(gè)if?
            盼給出解釋。
            第二個(gè)答案根本就是訪問非法內(nèi)存。
            #include <pthread.h> 這個(gè)文件是系統(tǒng)的嗎,還是你寫的?
            @楊帆
            感謝你的持續(xù)關(guān)注。
            你的鉆研精神值得敬佩。
            @楊帆
            謝謝你的關(guān)注。
            不過strValue.c_str()沒有返回什么臨時(shí)的指針。
            因?yàn)閏_str()函數(shù)返回的是一個(gè)char const *類型,這說明返回的指針是不可寫的。但是我為了讓返回的指針可寫,所以加了const_cast。這同時(shí)說明有const_cast的地方都存在潛在的錯(cuò)誤。你可以在VC2005的debug版下看看程序具體的執(zhí)行過程,在此過程中沒有創(chuàng)建臨時(shí)的字符串?dāng)?shù)組。
            @hoodlum1980
            呵呵,我的理解有誤,按照你的方案確實(shí)可以實(shí)現(xiàn)。
            不過時(shí)間效率和空間效率確實(shí)不是太高。
            另外如果可以使用這么多系統(tǒng)函數(shù)的話,那還是使用標(biāo)準(zhǔn)庫的bitset方便些。
            代碼如下:
            #include <iostream>
            #include <bitset>
            #include <algorithm>

            using namespace std;

            size_t GetBitNumOfOne_ByBitSet(unsigned int nValue)
            {
            const size_t sizeBitNum = 8;
            bitset<sizeof(unsigned int) * sizeBitNum> TestBitSet(nValue);
            string strContent = TestBitSet.to_string();
            return std::count(strContent.begin(), strContent.end(), '1');
            }

            void main()
            {
            //測(cè)試數(shù)據(jù)
            cout<<GetBitNumOfOne_ByBitSet(0)<<endl;
            cout<<GetBitNumOfOne_ByBitSet(1)<<endl;
            cout<<GetBitNumOfOne_ByBitSet(2)<<endl;
            cout<<GetBitNumOfOne_ByBitSet(123)<<endl;
            cout<<GetBitNumOfOne_ByBitSet(0xff)<<endl;
            }
            不可行。
            你的方法的思想是有點(diǎn)類似于桶排序的思想,但是是不可行的。
            首先從時(shí)間效率和空間效率上看與上述的任何一個(gè)方案相比都沒有優(yōu)勢(shì)。
            另外在計(jì)算機(jī)里數(shù)據(jù)是按照二進(jìn)制的方式進(jìn)行存儲(chǔ)的,按照你的方案還需要把二進(jìn)制再轉(zhuǎn)換成16進(jìn)制的,如果你能進(jìn)行轉(zhuǎn)換的話,很可能說明此時(shí)你已經(jīng)知道了這些二進(jìn)制位中有多少個(gè)1了。
            re: 面試感悟 OnTheWay 2010-03-24 18:24
            @billow
            您好,謝謝你的評(píng)論。
            我最近也想看看關(guān)于socket方面的書,我看到你說你在看<精通vc++ Socket編程> 這本書,書的全名是叫什么?感覺這本書怎么樣?謝謝了。
            re: 面試感悟 OnTheWay 2010-03-24 09:44
            @陳梓瀚(vczh)
            謝謝你的回復(fù)。
            最后這句話確實(shí)有些欠妥,太過張狂了。
            感謝你的提醒!

            <2010年5月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(4)

            隨筆分類

            隨筆檔案

            友情連接

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            成人综合伊人五月婷久久| AAA级久久久精品无码区| 国产偷久久久精品专区| 久久亚洲精品无码VA大香大香| 亚洲va国产va天堂va久久| 97久久天天综合色天天综合色hd| 久久99精品国产麻豆宅宅| 无码8090精品久久一区| 国产成人精品久久二区二区| 久久婷婷五月综合成人D啪 | 久久精品国产亚洲av瑜伽| 久久精品日日躁夜夜躁欧美| 久久久久99精品成人片欧美 | 色偷偷88888欧美精品久久久| 青青青国产精品国产精品久久久久 | 亚洲伊人久久综合中文成人网| 久久午夜伦鲁片免费无码| 精品久久久久久久中文字幕| 久久久久人妻一区精品性色av| 狠狠色综合久久久久尤物| 久久精品一本到99热免费| 国产成人无码精品久久久性色| 久久无码精品一区二区三区| 青青草国产成人久久91网| 久久狠狠高潮亚洲精品| 99久久国产精品免费一区二区| 青青热久久国产久精品 | 国产精品久久久久久久| 亚洲午夜久久久久久久久电影网| 久久久久黑人强伦姧人妻| 国产精品gz久久久| 国产午夜精品久久久久九九电影| 国产精品久久久久9999高清| 国产成人精品白浆久久69 | 久久亚洲国产午夜精品理论片 | 久久精品成人免费国产片小草| 久久99国产精品二区不卡| 久久91精品国产91久久户| 99久久精品免费国产大片| 狠狠精品久久久无码中文字幕 | 久久久久久狠狠丁香|