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

            happem

            STL容器元素數據滿足哪些條件

            一、可默認構造的,也即具有publicdefault constructor,不論是用戶顯式定義還是編譯器默認的,但是用戶定義的帶參數constructor會仰制編譯器合成default constructor,實際上并非任何情況下任意一種容器要求其元素類型滿足這一條件,特別是關聯式容器,因為只有序列式容器的某些函數才可能明確地或隱含地使用元素類型的default constructor,如果你不調用這樣的成員函數,編譯器就不需要元素類型的默認構造函數。

            二、可拷貝構造和拷貝賦值的,既具有publiccopy constructorcopy assignment operator,不論是編譯器默認還是operator,如果沒有顯式定義它的話,這個條件可歸結為:元素必須是拷貝的,但實際上拷貝賦值的要求也不是強制的,原因和default constructor類似。

            三、具有publicdestructor,不論是編譯器默認的還是用戶顯式定義的。

            四、對于關聯式容器,要求其元素必須是可比較的。

            Auto_ptr滿足上述條件嗎?至少滿足前三條,因此至少可以作為序列式容器的元素,如果為auto-ptr定義了比較運算符的話,應該還可以把它作為關聯式容器的元素。

            但是auto_ptr的特點是接管和轉移擁有權,而不是像原始指針那樣可以共享實值對象,即auto_ptr在初始化時接管實值對象和擁有權,而在拷貝時會交出實值對象及其擁有權。

            因此,auto_ptr對象和它的拷貝不會共享實值它的拷貝并不相同,然而根據STL容器值語義的要求,可拷貝構造意味著一個著把一個對象賦值給另一個同類型對象將產生兩個相同的對象,顯然,auto_ptr不能滿足這一要求,與上面結論矛盾!那么問題出在哪里呢?

            在揭開auto_ptr的之前需要了解copy constructorcopy assignment operator,的幾種合法形式,任何一個類都允許兩種形式的copy constructor

              C(const C©)

              C);

            同樣,copy assignment operator允許類似的兩種形式。

             C& operator=const C ©);

             C& operator=C & copy);

            實際上,由于copy assignment operator為普通的運算符重載成員函數,因此還可以定義下列形式賦值函數;

             C&operator=C copy);

            如果要防止用戶把一些不合適的對象放入容器中,就要求對象的設計和是實現者使用一些語言支持但不常用的特征,也就是說,要能夠在編譯階段就阻止這種具有潛在危險性的行為,常用的方法就是迫使其違反C++靜態類型安全規則。

            源處:http://www.lirenedu.org/index.php?ack=xinwen&id=1178 

            posted on 2012-08-27 14:03 happem 閱讀(703) 評論(0)  編輯 收藏 引用

            精品久久久久久久久久中文字幕| 久久久久亚洲精品无码网址| 超级碰碰碰碰97久久久久| 久久久久一本毛久久久| 亚洲中文精品久久久久久不卡| 久久久久无码精品国产不卡| 999久久久免费精品国产| 精品乱码久久久久久夜夜嗨| 伊人色综合久久天天人手人婷| 国产午夜精品久久久久免费视 | 精品国产一区二区三区久久蜜臀| 色欲综合久久躁天天躁| 久久国产精品无码HDAV| 亚洲午夜精品久久久久久app| 久久精品人成免费| 久久天天躁夜夜躁狠狠躁2022| 久久精品国产久精国产| 中文字幕日本人妻久久久免费 | 日韩欧美亚洲综合久久| 狠狠狠色丁香婷婷综合久久五月| 午夜精品久久久久9999高清| 99久久婷婷免费国产综合精品| 久久久精品国产免大香伊| 天天久久狠狠色综合| 久久精品夜夜夜夜夜久久| 精品久久久久久无码不卡| 伊人久久综在合线亚洲2019| 久久久女人与动物群交毛片 | 久久精品国产亚洲av麻豆色欲| 少妇无套内谢久久久久| 亚洲国产婷婷香蕉久久久久久| 伊人久久大香线蕉影院95| 久久se精品一区精品二区| 97久久超碰国产精品2021| 久久精品国产亚洲AV无码麻豆| 狠狠色综合网站久久久久久久高清 | 久久精品国产亚洲Aⅴ香蕉| 青青草原综合久久| 国产精品99久久久久久董美香| 91久久精品无码一区二区毛片| 国内精品久久久久国产盗摄|