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

            的筆記

            隨時隨地編輯

            澀普拉斯11扯淡大雜燴

            淡:
            ....................

            ....................

            C++11

            C++11,先前被稱作C++0x,即ISO/IEC 14882:2011
            Wikipedia:C++11
            Wikipedia: C++ Technical Report 1
            C++11/14/17 Features In VS 2015 RTM


            右值引用

            C++11增加一個新的非常量引用(reference)類型,稱作右值引用(R-value reference),標記為T &&。右值引用所綁定的臨時對象可以在該臨時對象被初始化之后做修改,這是為了允許move語義。(Wikipedia:C++11)

            POD

            Wikipedia: POD (程序設計)
            Plain old data structure, 縮寫為POD, 是C++語言的標準中定義的一類數據結構[1],POD適用于需要明確的數據底層操作的系統中。

            說人話:POD是標準委員會的老家伙們搞的一組底層數據標準,想讓某些C++對象可以跨平臺交互。

            Lambda

            []           // 沒有定義任何變量。使用未定義變量會引發錯誤。
            [x, &y]    // x以傳值方式傳入(默認),y以引用方式傳入。
            [&]         // 任何被使用到的外部變量都隱式地以引用方式加以引用。
            [=]         // 任何被使用到的外部變量都隱式地以傳值方式加以引用。
            [&, x]     // x顯式地以傳值方式加以引用。其余變量以引用方式加以引用。
            [=, &z]   // z顯式地以引用方式加以引用。其余變量以傳值方式加以引用。


            nullptr

            C++11引入了新的關鍵字來代表空指針常量:nullptr,將空指針和整數0的概念拆開。nullptr的類型為nullptr_t,能隱式轉換為任何指針或是成員指針的類型,也能和它們進行相等或不等的比較。而nullptr不能隱式轉換為整數,也不能和整數做比較。(wikipeida:C++11)
          1. 為了向后兼容,0仍可代表空指針常量。


          2. 枚舉類別的前置聲明(forward declaration)

            0000 enum Enum1; // C++與C++11中不合法;無法判別大小
            enum Enum2 : unsigned int; // 合法的C++11
            enum class Enum3; // 合法的C++11,列舉類別使用預設型別int
            enum class Enum4: unsigned int; // 合法的C++11
            enum Enum2 : unsigned short; // 不合法的C++11,Enum2已被聲明為unsigned int


            using別名

            類型別名
            using也能在C++11中定義一般類型的別名,等同typedef:
            typedefvoid(*PFD)(double);   // 傳統語法
            usingPFD=void(*)(double);    // 新增語法

            模板別名
            template< typename first, typename second, int third>
            class SomeType;

            template< typename second>
            using TypedefName = SomeType;


            可變參數模板

            在C++11之前,不論是類模板或是函數模板,都只能按其被聲明時所指定的樣子,接受一組固定數目的模板參數;C++11加入新的表示法,允許任意個數、任意類別的模板參數,不必在定義時將參數的個數固定。
            template<typename...Values>classtuple;


            使用或禁用對象的默認函數

            傳統C++默認構造函數規則: 若用戶定義了任何構造函數,編譯器便不會生成默認構造函數。
            否則,編譯器自動生成四個構造函數:默認構造函數(default constructor)、復制構造函數(copy constructor),賦值運算符(copy assignment operatoroperator=)以及析構函數(destructor)

            C++11允許顯式地表明采用或拒用編譯器提供的內置函數 structNonCopyable
            {
            NonCopyable&operator=(constNonCopyable&)=delete;
            NonCopyable(constNonCopyable&)=delete;
            NonCopyable()=default;
            };

            = delete的聲明(同時也是定義)也能適用于非內置函數,禁止成員函數以特定的形參調用:
            structNoDouble
            {
            voidf(inti);
            voidf(double)=delete;
            };


            static_assert

            想在編譯器測試模板參數的特性,只能用static_assert template
            structCheck
            {
            static_assert(sizeof(int)<=sizeof(T),"T is not big enough!");
            };


            hash

            C++11四種散列表,其中差別在于底下兩個特性:是否接受具相同鍵值的項目(Equivalent keys),以及是否會將鍵值映射到相對應的數據(Associated values)。為避免與第三方庫發展的散列表發生名稱上的沖突,前綴將采用unordered而非hash。
            散列表類型                        有無關系值   接受相同鍵值
            std::unordered_set          否               否
            std::unordered_multiset   否               是
            std::unordered_map        是               否
            std::unordered_multimap 是               是

            頭文件: <unordered_set>和<unordered_map>

            正則表達式

            頭文件:<regex>


            通用智能指針

            shared_ptr是一引用計數(reference-counted)指針,其行為與一般C++指針極為相似。在TR1的實現中,缺少了一些一般指針所擁有的特色,像是別名或是指針運算。C++11新增前述特色。
            一個shared_ptr只有在已經沒有任何其它shared_ptr指向其原本所指向對象時,才會銷毀該對象。
            一個weak_ptr指向的是一個被shared_ptr所指向的對象。該weak_ptr可以用來決定該對象是否已被銷毀。weak_ptr不能被解引用;想要訪問其內部所保存的指針,只能透過shared_ptr。有兩種方法可達成此目的。第一,類別shared_ptr有一個以weak_ptr為參數的構造函數。第二,類別weak_ptr有一個名為lock的成員函數,其回返值為一個shared_ptr。weak_ptr并不擁有它所指向的對象,因此不影響該對象的銷毀與否。


            元編程

            對于那些能自行創建或修改本身或其它程序的程序,我們稱之為元編程。這種行為可以發生在編譯或運行期。

            XXXX

            0000
          3. 0000


          4. XXXX

            0000
          5. 0000


          6. posted on 2019-02-19 10:04 的筆記 閱讀(569) 評論(0)  編輯 收藏 引用 所屬分類: C++

            狠狠色丁香久久综合婷婷| 精品国产乱码久久久久久浪潮| 狠狠综合久久综合中文88| 欧美激情精品久久久久| 99久久亚洲综合精品成人| 国产69精品久久久久99| 久久频这里精品99香蕉久| 亚洲va中文字幕无码久久| 久久免费精品视频| 午夜精品久久久久久影视riav| 久久精品人人做人人爽电影蜜月| 天天综合久久久网| 精品综合久久久久久98| 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 久久午夜无码鲁丝片午夜精品| 久久精品国产2020| 国产激情久久久久影院| 国产精品一区二区久久国产| 合区精品久久久中文字幕一区| 成人资源影音先锋久久资源网| 狠狠色丁香久久婷婷综合蜜芽五月| 97久久超碰成人精品网站| 日产精品久久久久久久| 欧美久久一级内射wwwwww.| 日本精品久久久久中文字幕8| 嫩草伊人久久精品少妇AV| 久久国产精品免费| 97超级碰碰碰碰久久久久| 久久久无码一区二区三区| 中文字幕久久精品无码| 伊人 久久 精品| 一级做a爰片久久毛片毛片| 久久伊人五月天论坛| 国产农村妇女毛片精品久久| 国产精久久一区二区三区| 国产精品久久久天天影视香蕉 | 国产精品免费久久久久久久久| 浪潮AV色综合久久天堂| 久久综合九色综合网站| 伊人久久综合成人网| 久久AV无码精品人妻糸列|