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

            堅持到底就是勝利

            用心去做好這件事情

            統計

            留言簿(1)

            閱讀排行榜

            評論排行榜

            #

            dream come true !(2)

            count_word:
            思想:用一個變量標志單詞的開始和結束,也就是說 what i do is to judge where the word begin and where the word end
            notes: maybe the interviewer didnot give enough information deliberately,they want me to check this detail,so i should communication with him to check the definition of word.

            int ?count_word( char ? * s)
            {
            ??
            if ( null ? == ?s)
            ?????
            return ? 0 ;
            ???
            int ?count? = ? 0 ;
            ???
            int ?i? = ? 0 ,flag? = ? 0 ;
            ???
            while (s[i]? != ? ' \0 ' )
            ???
            {
            ?????
            if (isalpha(s[i])? && ?flag? == ? 0 )
            ?????
            {
            ????????flag?
            = ? 1 ?; // ?word?begin
            ????????count? ++ ;
            ??????}

            ?????
            else ? if (flag? == ? 1 )
            ??????
            {
            ????????
            if ( ! isalpha(s[i])? && ?s[i]? != ? ' _ ' )
            ?????????flag?
            = ? 0 ;
            ????????
            else ? if (s[i]? == ? ' _ ' )
            ?????????
            {
            ???????????
            if ( ! isalpha(s[i + 1 ]))
            ??????????????flag?
            = ? 0 ;
            ?????????}
            ???
            ???????}

            ??????i
            ++ ;
            ????}

            ??
            return ?count;
            }

            posted @ 2006-11-19 21:18 ailab 閱讀(136) | 評論 (0)編輯 收藏

            dream come true!(1)

            question : i love u ->u love i
            analysis:
            主要思想是 首先整體逆置句子,然后再尋找句子中每個單詞 做逆置。
            需要分析的是: 單詞的定義?空格如何處理?標點符號?
            需要注意的地方就是:在需要知道單詞的結尾的時候,需要對字符串最后一個字符進行判斷,如果仍然處于單詞中,這個時候仍然要結束這個單詞,去逆置
            ?1void?reverse(char?*s,int?start,int?end)
            ?2{?
            ?3???if(s?==?null?||?start?>?end?)
            ?4???????return;
            ?5???for(int?i?=?start,j?=?end;?i?<?j;i++,j--)
            ?6????{
            ?7??????char?temp?=?s[i];s[i]?=?s[j];s[j]?=?temp;
            ?8??????}

            ?9}

            10
            ?1void?reverse_word(char?*s)
            ?2{
            ?3??if(s?==?null)
            ?4????return;
            ?5??int?len?=?strlen(s);
            ?6??reverse(s,0,len-1);
            ?7??
            ?8??int?flag?=?0;//?word?doesnot?begin
            ?9??int?i?=?0,start?=?0,end?=?0;
            10??while(s[i]?!=?'\0')
            11??{
            12?????if(isalpha(s[i])?&&?flag?==?0)
            13?????{
            14????????start?=?i;
            15????????flag?=?1;
            16?????}

            17?????else?if(flag?==?1?&&?!isalpha(s[i]))
            18????{
            19??????end?=?i-1;
            20??????reverse(s,start,end);
            21??????flag?=?0;??
            22?????}

            23?????else?if(flag?==?1?&&?s[i+1]?==?'\0')
            24?????{
            25?????????if(isalpha(s[i]))
            26???????????end?=?i;
            27????????else?
            28????????????end?=?i-1;
            29????????reverse(s,start,end);???
            30???}

            31???i++;
            32???}

            33
            34}

            35

            posted @ 2006-11-19 21:01 ailab 閱讀(179) | 評論 (0)編輯 收藏

            static member function

            不能引用非靜態成員變量,靜態類成員函數不接收指針,可以作為回調(call back)函數。。
            #include<iostream>
            using?namespace?std;

            class?A{
            private:
            ????
            static?int?x;
            ????
            int?y;
            public:
            ????A(
            int?_y):y(_y){}
            ????
            static?int?getvalue(){return?x;}
            }
            ;
            int?A::x?=?1;
            //int?A::getvalue();
            int?main(void)
            {
            ????A?a(
            2);
            ????
            int?yy=?A::getvalue();

            ????cout
            <<yy<<endl;

            ????
            return?0;


            }
            由于在C++中使用類成員函數作為回調函數的目的就是為了訪問所有的成員變量和成員函數,如果作不到這一點將不具有實際意義。解決的辦法也很簡單,就是使用一個靜態類指針作為類成員,通過在類創建時初始化該靜態指針,如pThis=this,然后在回調函數中通過該靜態指針就可以訪問所有成員變量和成員函數了。這種處理辦法適用于只有一個類實例的情況,因為多個類實例將共享靜態類成員和靜態成員函數,這就導致靜態指針指向最后創建的類實例。為了避免這種情況,可以使用回調函數的一個參數來傳遞this指針,從而實現數據成員共享

            posted @ 2006-07-07 17:06 ailab 閱讀(497) | 評論 (1)編輯 收藏

            sizeof(class)

            sizeof(class)總結下:
            如果class為空,那么sizeof(class)=1;
            如果class 內有虛函數,則要加上一個指針大小
            當然class的data member也是要加上的。。。。

            posted @ 2006-07-06 20:04 ailab 閱讀(449) | 評論 (1)編輯 收藏

            inline

            轉載水木
            誤解:inline函數沒有單獨的函數體,也不能取地址。

            inline修飾并不會改變函數的通常語義,仍可通過函數指針調用:

            inline?void?f()?{}

            void?g()?{
            ??void?(*p)()?=?f;
            ??p();
            }


            ------------------------------------------------------------------------


            誤解:inline一定導致代碼膨脹

            class?Foo?{
            public:
            ????????int?Bar()?{?return?foo;?}
            private:
            ????????int?foo;
            };

            這樣的Foo::Bar?inline會讓binary變小


            ------------------------------------------------------------------------


            誤解:?inline函數一定是internal?linkage/no?linkage的。

            inline與函數的linkage無關。inline函數同樣可以用static和extern修飾,并具
            備同一般函數相同的linkage。標準要求external?linkage的inline函數在所有編
            譯單元中具有相同的地址。external?linkage的inline函數內定義的靜態變量同
            樣應在所有編譯單元中表現為單一對象,具有相同的地址。


            ------------------------------------------------------------------------


            誤解:?如果inline函數包含循環/調用了其他函數/遞歸調用自己,編譯器就無法
            ??????將其展開。

            某些早期的編譯器有這類限制,但對現代編譯器來說它們不再是inline展開的障
            礙了。

            [insert?RoachCock's?example?here]


            ------------------------------------------------------------------------


            誤解:inline和virtual不能同時修飾一個函數。

            inline和virtual并不沖突。以下程序編譯通過。

            #include?<iostream>

            struct?A
            {
            ??inline?virtual?void?f()
            ??{
            ????std::cout?<<?"inline?virtual"?<<?std::endl;
            ??}
            };


            ------------------------------------------------------------------------


            誤解:virtual函數即使聲明為inline,由于是late?binding,無法判斷實際
            ??????調用的版本,編譯器也無法展開。

            虛函數調用并不總是late?binding。

            示例:

            struct?Base
            {
            ??virtual?void?foo(){cout?<<?"Base::foo"?<<?endl;}
            };

            struct?Derived?:?Base
            {
            ??void?foo(){cout?<<?"Derived::foo"?<<?endl;}
            };

            void?bar(Base&?b)
            {
            ??b.foo();??//?late?binding.?if?b?is?a?Derived,?call?Derived::foo
            ??b.Base::foo();??//?early?binding.?inline
            ??Derived?d;
            ??d.foo();??//?early?binding.?inline
            }

            另外,盡管在您的編譯器中很可能還沒有實現,但即使late?binding理論上也是
            可以展開的。

            posted @ 2006-07-05 20:10 ailab 閱讀(427) | 評論 (0)編輯 收藏

            review of this month

            ????? 從2006年6月1號在無錫南禪市買了《essential c++》之后,發誓要堅持把它給學下去,盡管我每天都在上班,但是我還是利用車上時間,公司少量時間,和晚上的時間,把這本書看完了,自我感覺功力大增,C語言的功底給了我很大的幫助,我不停地上機實踐,發現問題,解決問題,收獲知識,快速成長,只要自己努力,就一定市可以的。

            ?? “作為一個好的學習者,背景不是重點,重要的是,你是否具備正確的學習態度,起步固然可以從輕松小品開始,但如果碰上大部頭巨著就退避三舍、逃之夭夭,面對任何技術只求快餐速成,學語言從來不寫程序,那就絕對沒有成為高手乃至專家的一天”

            ???? 下一個月的目標,是重讀effective c++ ,c++編程用法,c++必知必會,最重要的是上機體會,發現問題,解決問題,積累知識。

            posted @ 2006-06-29 22:38 ailab 閱讀(163) | 評論 (0)編輯 收藏

            const類對象

            在寫程序時,就遇到了這種情況,“只能對const對象調用const 成員函數”
            class?nocopy{
            public:
            ?nocopy(
            int?value):_value(value){}
            ?
            int?get_value()?const?{return?_value;}
            private:
            ?
            int?_value;
            }
            ;

            void?fun(const?nocopy?&rhs)
            {
            ?rhs.get_value();
            }

            如果把const去掉,就出現錯誤,再說明另外一點,為什么使用引用?是因為這樣做,不會再調用copy operator,效率高。。。

            posted @ 2006-06-29 22:19 ailab 閱讀(1685) | 評論 (4)編輯 收藏

            reference to pointer

            ? 第六章其中講到一個二叉排序樹的問題,其中使用了reference to pointer,這

            個技術很有用,我今天做這個實驗的時候,就徹底用了一把。

            void?my_malloc(char?**p)
            {
            ?
            *p?=?(?char?*)calloc(sizeof(char),1);
            }


            char?*str?=?NULL;
            my_malloc(
            &str);
            strcpy(str,
            "hello");
            還有在創建二叉排序樹的時候,也非常有用,

            編程實在是王道,要不停地去編程,發現問題,解決問題,提高。。。

            posted @ 2006-06-28 20:47 ailab 閱讀(330) | 評論 (0)編輯 收藏

            說明

            這幾天沒來這里,并不代表我沒有看C++,我仍然按計劃在進行,也就是今天,我完成了第五章的閱讀,剩下的這兩天,主要是上機實踐,這樣周一就可以看第六章,一定要按計劃在7月份前高質量把書看完做完。。。

            posted @ 2006-06-23 20:01 ailab 閱讀(170) | 評論 (0)編輯 收藏

            今天體會

            ????? 上篇是我寫的一個關于matrix的類,實現了任意指定行和列,已經基本的運算“+,-,*”,還有拷貝賦值操作,應該可以滿足基本的要求。遇到的問題:
            在寫拷貝賦值等函數的時候,由于丟掉了 &
            matrix&?operator=(const?matrix?&rhs);
            結果導致了在析構函數無法正常完成,表現的現象free_dbg這個地方出問題,再者,還有地址無法訪問,這個其實是由于沒有新開空間,我就直接賦值了,所以出現了這個問題。

            ?? 在copy assignment operator這個函數的時候,一定要刪除掉原來的空間,然后new一個空間,再賦值過去。
            ? 在copy constructor的時候,只要new一個就可以了。
            這其實都是對于class內有配置動態內存,需要重寫這兩個函數。。
            matrix(const?matrix?&rhs);

            一切還都是計劃進行,第四章還剩下一個關于指針函數的問題,明天搞定,然后18號就按計劃進入第15章,還是老話:寫程序才能發現問題

            posted @ 2006-06-16 19:37 ailab 閱讀(134) | 評論 (0)編輯 收藏

            僅列出標題
            共3頁: 1 2 3 
            国产精品久久久久jk制服| 思思久久好好热精品国产| 99久久人妻无码精品系列| 2022年国产精品久久久久| 2021精品国产综合久久| 久久本道综合久久伊人| 亚洲国产欧美国产综合久久| 精品久久久久久亚洲| 亚洲国产天堂久久综合| 国产精品久久波多野结衣| 久久亚洲天堂| 青青草原综合久久大伊人精品| 性做久久久久久免费观看| 久久亚洲精品国产精品| 久久久久国产一区二区三区| 亚洲国产精品无码久久久不卡 | 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 久久婷婷五月综合成人D啪| 久久久久成人精品无码中文字幕 | 狠狠精品干练久久久无码中文字幕 | 青青青青久久精品国产h| 91麻豆国产精品91久久久| 亚洲国产成人久久综合碰碰动漫3d| 久久亚洲中文字幕精品一区| 国产精品内射久久久久欢欢 | 国产精品久久久天天影视香蕉| 中文字幕热久久久久久久| 狠狠精品干练久久久无码中文字幕 | 久久久黄片| 精品国产91久久久久久久a | 久久久久九国产精品| 99久久精品国产一区二区三区 | 无码人妻久久一区二区三区| 亚洲欧美成人久久综合中文网| 色综合久久综合网观看| 久久精品国内一区二区三区| 久久棈精品久久久久久噜噜| 久久人爽人人爽人人片AV| 久久精品国产亚洲av日韩| 亚洲va中文字幕无码久久| 久久99久久99精品免视看动漫|