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

            的筆記

            隨時(shí)隨地編輯

            澀普拉斯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增加一個(gè)新的非常量引用(reference)類型,稱作右值引用(R-value reference),標(biāo)記為T &&。右值引用所綁定的臨時(shí)對(duì)象可以在該臨時(shí)對(duì)象被初始化之后做修改,這是為了允許move語義。(Wikipedia:C++11)

            POD

            Wikipedia: POD (程序設(shè)計(jì))
            Plain old data structure, 縮寫為POD, 是C++語言的標(biāo)準(zhǔn)中定義的一類數(shù)據(jù)結(jié)構(gòu)[1],POD適用于需要明確的數(shù)據(jù)底層操作的系統(tǒng)中。

            說人話:POD是標(biāo)準(zhǔn)委員會(huì)的老家伙們搞的一組底層數(shù)據(jù)標(biāo)準(zhǔn),想讓某些C++對(duì)象可以跨平臺(tái)交互。

            Lambda

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


            nullptr

            C++11引入了新的關(guān)鍵字來代表空指針常量:nullptr,將空指針和整數(shù)0的概念拆開。nullptr的類型為nullptr_t,能隱式轉(zhuǎn)換為任何指針或是成員指針的類型,也能和它們進(jìn)行相等或不等的比較。而nullptr不能隱式轉(zhuǎn)換為整數(shù),也不能和整數(shù)做比較。(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,列舉類別使用預(yù)設(shè)型別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);   // 傳統(tǒng)語法
            usingPFD=void(*)(double);    // 新增語法

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

            template< typename second>
            using TypedefName = SomeType;


            可變參數(shù)模板

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


            使用或禁用對(duì)象的默認(rèn)函數(shù)

            傳統(tǒng)C++默認(rèn)構(gòu)造函數(shù)規(guī)則: 若用戶定義了任何構(gòu)造函數(shù),編譯器便不會(huì)生成默認(rèn)構(gòu)造函數(shù)。
            否則,編譯器自動(dòng)生成四個(gè)構(gòu)造函數(shù):默認(rèn)構(gòu)造函數(shù)(default constructor)、復(fù)制構(gòu)造函數(shù)(copy constructor),賦值運(yùn)算符(copy assignment operatoroperator=)以及析構(gòu)函數(shù)(destructor)

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

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


            static_assert

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


            hash

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

            頭文件: <unordered_set>和<unordered_map>

            正則表達(dá)式

            頭文件:<regex>


            通用智能指針

            shared_ptr是一引用計(jì)數(shù)(reference-counted)指針,其行為與一般C++指針極為相似。在TR1的實(shí)現(xiàn)中,缺少了一些一般指針?biāo)鶕碛械奶厣袷莿e名或是指針運(yùn)算。C++11新增前述特色。
            一個(gè)shared_ptr只有在已經(jīng)沒有任何其它shared_ptr指向其原本所指向?qū)ο髸r(shí),才會(huì)銷毀該對(duì)象。
            一個(gè)weak_ptr指向的是一個(gè)被shared_ptr所指向的對(duì)象。該weak_ptr可以用來決定該對(duì)象是否已被銷毀。weak_ptr不能被解引用;想要訪問其內(nèi)部所保存的指針,只能透過shared_ptr。有兩種方法可達(dá)成此目的。第一,類別shared_ptr有一個(gè)以weak_ptr為參數(shù)的構(gòu)造函數(shù)。第二,類別weak_ptr有一個(gè)名為lock的成員函數(shù),其回返值為一個(gè)shared_ptr。weak_ptr并不擁有它所指向的對(duì)象,因此不影響該對(duì)象的銷毀與否。


            元編程

            對(duì)于那些能自行創(chuàng)建或修改本身或其它程序的程序,我們稱之為元編程。這種行為可以發(fā)生在編譯或運(yùn)行期。

            XXXX

            0000
          3. 0000


          4. XXXX

            0000
          5. 0000


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

            久久精品9988| 中文字幕精品久久| 国产一久久香蕉国产线看观看| 国产精品久久久久影院色| 国产亚洲美女精品久久久久狼| 久久国产免费| 亚洲AV乱码久久精品蜜桃| 久久精品一区二区影院| 伊人久久大香线蕉综合Av| 91精品国产综合久久四虎久久无码一级 | 久久久精品人妻一区二区三区蜜桃 | 久久精品中文騷妇女内射| 亚洲综合久久综合激情久久| 老男人久久青草av高清| 欧美日韩中文字幕久久伊人| 久久精品国产99久久久古代| 国产精品女同一区二区久久| 日日噜噜夜夜狠狠久久丁香五月| 久久久久亚洲AV无码专区网站| 久久久久久午夜成人影院| 欧美精品九九99久久在观看| 国产精自产拍久久久久久蜜| 欧美一区二区三区久久综| 三级韩国一区久久二区综合| 久久久久免费精品国产| 久久久久国产精品熟女影院 | 国产AⅤ精品一区二区三区久久 | 777久久精品一区二区三区无码| 久久久久久亚洲Av无码精品专口| 精品国产日韩久久亚洲| 无码乱码观看精品久久| 久久精品无码一区二区三区日韩| 青青青国产成人久久111网站| 久久精品国产亚洲AV无码娇色| 久久影院综合精品| 99国产欧美久久久精品蜜芽| 91精品国产高清91久久久久久| 久久精品国产亚洲AV麻豆网站| 欧美丰满熟妇BBB久久久| 久久水蜜桃亚洲av无码精品麻豆 | 久久婷婷五月综合97色|