青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 46  文章 - 39  trackbacks - 0
<2025年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

友情鏈接

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

容器


類目:容器

描述


容器是一個(gè)可以存儲(chǔ)對(duì)象(它的元素),并具有訪問(wèn)其元素的方法的一個(gè)對(duì)象。特別是,每一個(gè)容器模式類型都有一個(gè)關(guān)聯(lián)的迭代器類型來(lái)遍歷容器中的元素。

不能保證容器中的元素按特定的方式來(lái)存儲(chǔ);事實(shí)上,不同的是每次迭代器是如何通過(guò)容器的。也不能保證容器的多個(gè)迭代器是一直有效的。(特定的容器類型,像前向容器是提供這樣的保證的。)

容器“擁有”它的元素:存儲(chǔ)在一個(gè)容器中的元素的壽命不能超過(guò)容器本身。[1]

完善


Assignable

相關(guān)類型

(Value type)值類型  X::value_type  存儲(chǔ)在容器中的對(duì)象類型。值類型必須是Assignable,但不必是DefaultConstructible.[2]
(Iterator type)迭代器類型 X::iterator  迭代器類型用來(lái)遍歷容器的元素。迭代器的值類型就是容器的值類型。必須可以從iterator type轉(zhuǎn)換成const iterator type。迭代器的類型必須是一個(gè)輸入迭代器。[3]
(Const iterator type)常量迭代器類型 X::const_iterator 是一個(gè)可以查看但不能修改容器中元素的迭代器類型。[3][4]
(Reference type)引用類型 X::reference 是一個(gè)行為像容器值類型引用的類型。[5]
(Const reference type)常量引用類型 X::const_reference 是一個(gè)行為像容器值類型常量引用的類型。[5]
(Pointer type)指針類型 X::pointer 是一個(gè)行為像容器值類型指針的類型。[6]
(Distance type)距離類型 X::distance_type  一個(gè)有符號(hào)整數(shù)類型來(lái)表示兩個(gè)容器迭代器之間的距離。此類型必須跟迭代器之間的距離類型是一樣的。[2]
(Size type)大小類型 X::size_type 一個(gè)無(wú)符號(hào)整數(shù)類型來(lái)表示任何非負(fù)值的容器距離類型。[2]

標(biāo)記法


X    容器模式對(duì)象
a,b  X類型對(duì)象
T    X類型的值

定義


容器的(size)大小就是它所包含的元素個(gè)數(shù),它是一個(gè)非負(fù)數(shù)。

容器的(area)面積就是它占用的字節(jié)數(shù)。更確切地說(shuō),它是元素的面積的總和加上與容器本身相關(guān)的任何開(kāi)銷。如果容器的值類型T是一個(gè)簡(jiǎn)單的類型(而不是一個(gè)容器類型),那么這個(gè)容器的面積就是sizeof(T)的常數(shù)倍。也就是說(shuō),一個(gè)簡(jiǎn)單值類型的容器a的面積是O(a.size())。

一個(gè)(variable sized)可變大小的容器提供插入和/或移除元素的方法;容器大小可能會(huì)變化。一個(gè)(fixed size)固定大小的容器,它的大小在它的生命周期內(nèi)是一只不變的。一些固定大小的容器類型,大小在編譯時(shí)確定。

有效表達(dá)式


除了Assignable,EqualityComparable,和LessThanComparable這些已經(jīng)定義的表達(dá)式,下面的表達(dá)式也必須是有效的。

名稱      表達(dá)式         類型要求    返回類型
范圍起始  a.begin()                  如果是可變的,返回值為iterator(迭代器),否則為const_iterator[4][7]
范圍結(jié)束  a.end()                    如果是可變的,返回值為iterator(迭代器),否則為const_iterator[4]
大小      a.size()                   size_type
最大容量  a.max_size()               size_type
空容器    a.empty()                  可轉(zhuǎn)換成bool類型
交換      a.swap(b)                  void

表達(dá)式語(yǔ)義


名稱          表達(dá)式       前提    語(yǔ)義                                                         后置
拷貝構(gòu)造函數(shù)  X(a)                                                                              X().size() == a.size()。X()包含了a中所有元素的副本。
拷貝構(gòu)造函數(shù)  X b(a)                                                                            b().size() == a.size()。b包含了a中所有元素的副本。
賦值運(yùn)算符    b = a                                                                             b().size() == a.size()。b包含了a中所有元素的副本。
析構(gòu)函數(shù)      a.~X()               銷毀a中所有的元素,并釋放為它們分配的內(nèi)存(如果有的話)。
范圍起始      a.begin()            返回一個(gè)指向容器第一個(gè)元素的迭代器(iterator)。[7]            a.begin()要么是提領(lǐng)要么是past-the-end。僅僅當(dāng)a.size == 0的時(shí)候它才是past-the-end。
范圍結(jié)束      a.end()              返回一個(gè)指向容器的最后一個(gè)元素的后面的迭代器(iterator)。     a.end 是 past-the-end。
大小          a.size()             返回容器的大小,也就是元素的個(gè)數(shù)。[8]                        a.size() >= 0 && a.size <= a.max_size()
最大容量      a.max_size()         返回容器的最大容量。[8]                                      a.max_size() >= 0 && a.max_size >= a.size()
空容器        a.empty()            相當(dāng)于 a.size() == 0 (但是可能更快)                        
交換          a.swap(b)            相當(dāng)于swap(a,b)[9]

復(fù)雜性擔(dān)保

拷貝構(gòu)造函數(shù),復(fù)制操作符,析構(gòu)函數(shù)跟容器大小呈線性關(guān)系。

begin()和end()的攤銷時(shí)間為常數(shù)。

size()跟容器大小呈線性關(guān)系。[10] max_size()和empty()的攤銷時(shí)間為常數(shù)。如果你要測(cè)試一個(gè)容器是否為空,你應(yīng)該總是寫c.empty而不是c.size() == 0。這兩個(gè)表達(dá)式是等價(jià)的,但前者可能要快得多。

swap()的攤銷時(shí)間為常數(shù)。[9]

不變量


有效范圍     任何容器a, [a.begin(), a.end())是一個(gè)有效范圍。[11]
范圍大小     a.size()等于從a.begin()到a.end()的距離。
完整性       一個(gè)迭代算法[a.begin(), a.end()),將會(huì)遍歷a中的每個(gè)元素。[11]

模型


vector

注釋


[1]元素的壽命不能超過(guò)其容器可能看起來(lái)像一個(gè)嚴(yán)重的限制,事實(shí)上,它并不是限制。請(qǐng)注意指針和迭代器都是對(duì)象;就像任何其他對(duì)象一樣,他們可以被存儲(chǔ)在一個(gè)容器內(nèi)。在這種情況下,容器擁有指針本身,而不是它們指向的對(duì)象。

[2]這種表達(dá)式必須是一個(gè)typedef,這是一個(gè)類型的代名詞。

[3]這可能是一個(gè)typedef或者其他類型,或者一個(gè)定義嵌套類作為一個(gè)內(nèi)部類的X的特定的類型。

[4]容器的iterator類型和const iterator類型可能是一樣的:不能保證每個(gè)容器必須有一個(gè)相關(guān)的可變迭代器類型。例如,set和hash_set定義iterator和const iterator為同一類型。

[5]引用類型需要與普通C++引用類型有相同的語(yǔ)義,但它實(shí)際上并不是普通的C++引用。例如,在某些實(shí)現(xiàn)中,可能會(huì)提供額外的引用類型來(lái)支持非標(biāo)準(zhǔn)的內(nèi)存模型。但是請(qǐng)注意,“智能引用”(用戶定義的引用類型提供額外的功能)不是一個(gè)可行的選擇。用戶定義的類型不可能與C++引用類型具有相同語(yǔ)義,因?yàn)镃++語(yǔ)言不支持重新定義的成員訪問(wèn)運(yùn)算符(operator.)。

[6]跟[5]中的引用類型一樣,指針類型需要與C++指針有相同的語(yǔ)義,但實(shí)際并不是C++指針。“智能指針”不同于“智能引用”是有可能的。因?yàn)榭梢詾橛脩舳x類型來(lái)定義的引用操作符和指針成員訪問(wèn)運(yùn)算符可以訪問(wèn)運(yùn)算符*和->。

[7]迭代器類型(iterator type)必須是一個(gè)輸入迭代器(input iterator),它只提供了一個(gè)非常薄弱的擔(dān)保;特別是,輸入迭代算法必須都是“單通道”。容器只有一個(gè)簡(jiǎn)單的迭代器(iterator)可以隨時(shí)激活。Forward Container(前向容器)沒(méi)有這個(gè)限制。

[8]一個(gè)固定大小的容器,size() == max_size()。

[9]對(duì)于任何Assignable類型,swap可以定義分配條款。這需要三個(gè)任務(wù),每一個(gè)容器類型,容器的大小呈線性關(guān)系。然而,在某種意義上,a.swap(b)是多余的。它的存在僅僅為了提高效率:許多容器,如vector和list,它實(shí)現(xiàn)swap的時(shí)間復(fù)雜度是不變的,而不是線性的。一些容器類型X,那么它們的模板化swap(X&,X&)可以簡(jiǎn)單地寫在X::swap(X&)。也就是說(shuō)X::swap(X&)只能定義在執(zhí)行時(shí)間是常量的情況下。不是所有的容器類X都需要這樣的一個(gè)成員函數(shù),但是如果這樣的函數(shù)存在,那么必須保證攤銷時(shí)間為常量。

[10]對(duì)于許多容器,如vector和deque,size是O(1).這滿足了O(N)的要求。

[11]雖然[a.begin(), a.end())必須是一個(gè)有效的范圍,而且每個(gè)元素必須都包含在容器內(nèi),但是在這個(gè)范圍內(nèi)出現(xiàn)的順序是不確定的。如果你兩次遍歷一個(gè)容器,它不能保證這兩次的遍歷順序是相同的。Forward Container前向容器沒(méi)有這個(gè)限制。

參見(jiàn)


迭代器概述,輸入迭代器,序列
posted on 2012-03-13 13:20 canaan 閱讀(1726) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 外文翻譯
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品另类一区| 亚洲激情在线观看视频免费| 国产精品日韩欧美| 欧美日韩在线播放一区二区| 91久久精品视频| 亚洲深夜福利| 日韩视频中文| 亚洲综合欧美日韩| 久久久久久日产精品| 久久综合色8888| 亚洲网友自拍| 巨乳诱惑日韩免费av| 亚洲精品乱码久久久久久蜜桃麻豆 | 香港成人在线视频| 亚洲一区二区在线免费观看视频| 亚洲人成啪啪网站| 亚洲精品久久久蜜桃| 欧美一级片久久久久久久| 久久精品欧美日韩精品| 亚洲在线视频免费观看| 欧美激情一区二区三区在线视频| 久久人人精品| 激情av一区| 欧美一区二区三区日韩视频| 欧美freesex8一10精品| 欧美国产视频日韩| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲免费观看| 久久综合99re88久久爱| 日韩视频一区二区在线观看 | 99热免费精品在线观看| 久久一区中文字幕| 在线免费观看日韩欧美| 欧美成年人视频| 久久爱91午夜羞羞| 国产精品免费视频观看| 亚洲美女在线观看| 欧美成人一品| 久久综合色播五月| 亚洲精品一区二区三| 国际精品欧美精品| 久久久久国产精品一区二区| 亚洲精品在线视频观看| 国产精品女主播在线观看| 亚洲欧洲日本国产| 99热精品在线观看| 亚洲美女色禁图| 亚洲男女自偷自拍图片另类| 很黄很黄激情成人| 亚洲高清不卡在线观看| 欧美国产高清| 午夜一区二区三区不卡视频| 香蕉av777xxx色综合一区| 国内视频一区| 在线一区二区日韩| 国产精品久久久久秋霞鲁丝| 久久久久久国产精品一区| 久久精品一区二区三区中文字幕| 亚洲人在线视频| 欧美不卡一卡二卡免费版| 亚洲天堂成人| 久久综合色天天久久综合图片| 国产精品一区二区你懂得| 亚洲视频视频在线| 亚洲美女中出| 噜噜噜躁狠狠躁狠狠精品视频| 久久综合久久综合久久| 欧美精品福利在线| 欧美福利视频一区| 欧美三级乱码| 欧美黄色一级视频| 亚洲欧洲中文日韩久久av乱码| 久久国产日本精品| 久久精品国产一区二区三区免费看| 欧美另类变人与禽xxxxx| 欧美在线亚洲综合一区| 老司机aⅴ在线精品导航| 国产精品h在线观看| 亚洲国产精品久久久久秋霞蜜臀| 国产精品久久久久久久免费软件| 欧美激情久久久久| 亚洲免费久久| 国产精品国产三级欧美二区 | 久久精品国产欧美亚洲人人爽| 亚洲自拍三区| 欧美小视频在线| 久久国产精品72免费观看| 久久精品国产视频| 欧美国产一区在线| 欧美亚洲在线视频| 亚洲电影免费观看高清完整版在线 | 亚洲一区二区在线视频 | 欧美高清在线一区| 午夜国产精品影院在线观看| 欧美日本一道本在线视频| 午夜影视日本亚洲欧洲精品| 欧美自拍偷拍| 亚洲欧美日产图| 一区二区三区黄色| 国产精品亚洲人在线观看| 欧美第一黄色网| 日韩视频免费在线| 美女主播视频一区| 宅男精品视频| 亚洲精选大片| 亚洲国产美国国产综合一区二区| 美女主播视频一区| 一区二区久久久久| 亚洲高清免费| 久久久久久九九九九| 久久婷婷丁香| 欧美激情综合色| 日韩天堂av| 亚洲福利视频网站| 中文亚洲免费| 亚洲女人av| 亚洲日本久久| 宅男精品视频| 小处雏高清一区二区三区| 久久久另类综合| 久久久久久久网站| 久久超碰97人人做人人爱| 亚洲免费av观看| 亚欧成人精品| 久久亚洲欧美| 亚洲国产你懂的| 夜夜嗨av一区二区三区四区| 亚洲美女尤物影院| 日韩视频一区二区在线观看 | 久久成人免费电影| 欧美人成在线| 激情亚洲一区二区三区四区| 国产精品老牛| 曰韩精品一区二区| 激情综合色综合久久| 午夜在线a亚洲v天堂网2018| 亚洲女女女同性video| 免费亚洲电影在线| 一本久道综合久久精品| 午夜视频一区在线观看| 久久久av毛片精品| 国产精品美女久久久久久免费| 欧美视频精品在线| 亚洲欧洲在线免费| 久久人人97超碰国产公开结果| 亚洲欧美精品在线观看| 欧美国产综合视频| 国产精品久久久久秋霞鲁丝| 午夜精品久久久久久久久久久久久| 欧美在线观看网址综合| 香蕉免费一区二区三区在线观看 | 一本色道久久88综合亚洲精品ⅰ| 亚洲欧洲精品一区| 99riav久久精品riav| 99精品视频网| 国产精品网站在线播放| 亚洲激情自拍| 欧美激情一区二区三区在线| 亚洲午夜精品在线| 国产精品拍天天在线| 亚洲视频www| 亚洲第一天堂无码专区| 日韩视频第一页| 国产精品视频在线观看| 亚洲欧美日韩视频二区| 欧美一区永久视频免费观看| 欧美色图一区二区三区| 亚洲免费av电影| 亚洲二区视频在线| 欧美国产第二页| 在线中文字幕日韩| 一区二区激情视频| 国产精品欧美精品| 久久久久91| 国产精品国产三级国产| 在线观看不卡| 一区二区三区四区五区视频| 欧美黄色小视频| 欧美一区观看| 亚洲黄色一区二区三区| 在线精品国精品国产尤物884a| 老司机精品视频一区二区三区| 欧美日韩亚洲高清| 另类欧美日韩国产在线| 欧美大色视频| 欧美一区二区三区视频在线观看| 久久一区二区三区四区| 亚洲一区二区伦理| 午夜亚洲视频| 亚洲日韩视频| 欧美视频中文一区二区三区在线观看| 久久久久久午夜| 黄色成人免费网站| 欧美在线www| 日韩视频不卡中文| 欧美系列精品| 麻豆九一精品爱看视频在线观看免费| 国产一区二区在线免费观看| 亚洲婷婷综合色高清在线| 激情av一区|