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

            Robin Chow's C++ Blog

             

            [導入]More Exceptional C++ 之 1

            編碼原則:
            1. 更注重可讀性,避免寫簡潔的代碼(簡潔但是難以讀懂和維護)。
            2. 注重可擴展性和封裝。
            3. 考慮解決一個問題時是否需要使得解決方案具有擴展,還是僅僅解決當前的問題。注意二者之間的平衡。

            文章來源:http://my.donews.com/robinchow/2007/01/17/exiydzbwcigvtcumybdrwjyrgeojvifzfoyj/

            posted @ 2007-10-23 20:47 Robin Chow 閱讀(65) | 評論 (0)編輯 收藏

            [導入]More Exceptional C++ 之 2

            范型算法 remove():
            remove() 沒有真正從容器中刪除元素,容器的元素個數也不會改變。remove() 所做的是把未被刪除的元素往前移動,以填充被刪除元素留下的空位,而把被刪除元素移到容器后面。最后,remove() 返回一個指向第一個被刪除元素的 iterator,如果沒有元素被刪除,則返回 end() iterator。
            remove() 如此工作的原因是它不是作用在容器上,而是作用在 iterator上,但是 iterator 并沒有像“刪除 iterator 指向的元素而不管是什么容器”的操作。要刪除元素必須要用到直接作用在容器上的操作,如 erase()。
            文章來源:http://my.donews.com/robinchow/2007/01/17/sowxiqnuyycsamoatekjugwfqwlehlxzztxi/

            posted @ 2007-10-23 20:47 Robin Chow 閱讀(66) | 評論 (0)編輯 收藏

            [導入]C++ GUI庫大全


            C++博客 - 暮暮息幕幕新 - [摘錄]C++ GUI庫大全
            文章來源:http://my.donews.com/robinchow/2007/01/17/jmgltqvkdrrulheooyjlknnbayxdlijuupfo/

            posted @ 2007-10-23 20:47 Robin Chow 閱讀(103) | 評論 (0)編輯 收藏

            [導入]More Exceptional C++ 之 3

            predicate(斷言)是指給出 yes/no 的函數或者函數對象。使用函數對象的好處是可以存儲變量。
            predicate 通常被算法用來作用于一個元素并且給出一個判定,比如是否大于某個數。
            有狀態的 predicate 是指狀態在運行時可能改變的 predicate。對于有狀態的 predicate 來說,各個副本之間不是等價的。對于算法來說,要使用 有狀態的 predicate 需要滿足兩個條件:
            1. 算法必須保證不產生 predicate 的副本。
            2. 算法必須對元素以確定的順序來應用 predicate(例如,first 到 last)。
            C++ 標準不要求標準算法滿足以上兩個條件,因此建議不要使用帶狀態的 predicate。

            文章來源:http://my.donews.com/robinchow/2007/01/17/okqqyqklkznuiqhlavokqgztcltuwiqlsgcq/

            posted @ 2007-10-23 20:47 Robin Chow 閱讀(97) | 評論 (0)編輯 收藏

            [導入]More Exceptional C++ 之 4

            typename 常常在模板類的聲明或定義中用來聲明一個類型。在模板中,如果一個和模板參數相關的名字沒有在名字解析中被找到,或者被關鍵字 typename 修飾,則它不能作為一個類型。考慮下面的代碼:
            template< typename T >
            class X_base
            {
            public:
            typedef T instantiated_type;
            };

            template< typename A, typename B >
            class X : public X_base< B >
            {
            public:
            bool operator()( const instantiated_type& i ) const
            {
            return i != instantiated_type();
            }
            // ... more stuff ...
            };

            instantiated_type 和模板參數類型相關,使用名稱解析不能找到并且沒有被關鍵字 typename 修飾,因此將導致編譯錯誤,正確的方法是使用關鍵字 typename。
            文章來源:http://my.donews.com/robinchow/2007/01/18/gywtqxaalrvetoldhdtlmchhlsmnfxklwgem/

            posted @ 2007-10-23 20:47 Robin Chow 閱讀(82) | 評論 (0)編輯 收藏

            [導入]More Exceptional C++ 之 5

            小結:
            • 將 vector 和 C 風格的數組混用是安全的。可以采用如下方法引用 vector 內的元素: &c[0]。
            • 優先使用 vector 而不是 deque。如果需要一些特殊操作,比如在數組兩頭插入和刪除,或者不需要連續的存儲空間,則使用 deque。
            • 使用和臨時對象交換的方法來壓縮 vector 或者 deque 的空間。vector< Customer >(c).swap(c):將 c 的空閑空間釋放;vector< Customer >().swap(c):將 c 的所有空間釋放。
            • 如上一條款所提到:除非確實需要進行空間優化,否則總是使用 deque< bool > 而不是 vector< bool >。

            文章來源:http://my.donews.com/robinchow/2007/01/23/xflxtusuynvqylhgqboduxqzfjholpejuphn/

            posted @ 2007-10-23 20:47 Robin Chow 閱讀(87) | 評論 (0)編輯 收藏

            [導入]More Exceptional C++ 之 6

            在 Map 中,改變 Key 的惟一方法是先將它刪除,再插入一個修改過的值。不要對 Key 進行任何直接或間接的修改,這樣可能導致數據處于不確定的狀態。Map 的 Key 是 const 的,而 Set 則不一定,因為 C++ 標準沒有給出強制的規定。

            文章來源:http://my.donews.com/robinchow/2007/01/23/hoknidslvhgfwhsdmssqezjefwyazkshzcuh/

            posted @ 2007-10-23 20:47 Robin Chow 閱讀(70) | 評論 (0)編輯 收藏

            [導入]More Exceptional C++ 之 7

            小結:
            1. 避免使用宏,它常常使得代碼難于讀懂從而不方便維護。
            2. 再次注意,非 const 引用不能和臨時對象進行綁定。這是函數參數應該盡量使用 const 引用的原因。
            3. 總是為重載操作符保留重載語義,也就是說,和內置類型的語義保持一致。
            4. 避免如下的代碼:l.erase(i); i ++; 因為 erase 操作之后,i 已經失效,因此 i ++ 是無效的。
              正確的寫法如下:l.erase( i ++);

            文章來源:http://my.donews.com/robinchow/2007/01/23/zfcdeisfqfhckfpgukvjrmwoicoouodtugwy/

            posted @ 2007-10-23 20:47 Robin Chow 閱讀(71) | 評論 (0)編輯 收藏

            [導入]Ten reasons why every programmer should learn C(英文)



            Ten reasons why every programmer should learn C


            文章來源:http://my.donews.com/robinchow/2007/01/25/vquwpymxknruwglornwepdtsfdwqmyjipeef/

            posted @ 2007-10-23 20:47 Robin Chow 閱讀(69) | 評論 (0)編輯 收藏

            [導入]More Exceptional C++ 之 8

            關于 C++ 構造函數:
            • 構造函數通過到達函數體結尾或者 return 表達式結束,此時對象開始存在,或者
            • 構造函數拋出一個異常,那么對象不僅不存在,而且從來就沒有作為一個“對象”存在過。
            除了以上兩者,再沒有其它可能。

            文章來源:http://my.donews.com/robinchow/2007/01/29/pcrflkpnmgqpmgsigqxqftmyehrvvsnlufrf/

            posted @ 2007-10-23 20:47 Robin Chow 閱讀(98) | 評論 (0)編輯 收藏

            僅列出標題
            共9頁: 1 2 3 4 5 6 7 8 9 

            導航

            統計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            日韩久久久久久中文人妻| 99久久精品费精品国产| 国产毛片久久久久久国产毛片| 久久婷婷久久一区二区三区| 色综合久久综合网观看| 国内精品久久久久影院免费| 综合久久给合久久狠狠狠97色| 久久国产色AV免费看| 久久只这里是精品66| 国产精品久久久99| 亚洲?V乱码久久精品蜜桃| 精品久久无码中文字幕| 伊人 久久 精品| 色婷婷久久综合中文久久蜜桃av| 国产亚洲欧美精品久久久| 久久久久亚洲精品无码网址 | 亚洲国产精品婷婷久久| 午夜精品久久久内射近拍高清| 久久99热这里只有精品国产| 国产香蕉97碰碰久久人人| 久久99国产乱子伦精品免费| 嫩草影院久久国产精品| 久久国产色av免费看| 国产真实乱对白精彩久久| 国产成人久久激情91| 99久久综合狠狠综合久久止| 中文字幕无码久久久| 日本福利片国产午夜久久| 久久青青草原亚洲av无码app | 亚洲精品99久久久久中文字幕| 精品久久香蕉国产线看观看亚洲| 无码人妻久久一区二区三区蜜桃 | 久久精品国产AV一区二区三区 | 久久九九兔免费精品6| 精品久久久久久无码免费| 人妻少妇久久中文字幕一区二区| 久久久精品久久久久久| 久久人人青草97香蕉| 久久国产成人| 久久99精品国产麻豆不卡| 精品国产一区二区三区久久|