9.1 順序容器的定義--C++ Primer ReadNote

9.1 順序容器的定義

順序容器Sequential Container主要有三種:vector砌溺、listdeque爵政。
主要區(qū)別在于訪問元素的方式和增刪操作的代價侣背。

Container 特點
vector 支持快速隨機訪問
list 支持快速插入刪除
deque 雙端隊列
9.1.1容器元素的初始化

順序容器初始化主要有5種:

語法 容器構(gòu)造法 適用范圍 說明
C <T> c 默認構(gòu)造函數(shù) 所有容器 C是容器類型名狂窑,T是元素類型粹庞,
C c(c1) 復制構(gòu)造函數(shù) 所有容器 c1和c必須相同容器類型和元素類型
C c(it_b,it_e) 部分復制 所有容器 it_b與it_e是迭代器
C c(n,t) 指定初始化元素數(shù)目和默認值 順序容器 n是個數(shù),t是元素默認值
C c(n) 指定初始化元素數(shù)目 順序容器 n是個數(shù)捌朴,默認值是0或者空
  • 默認初始化
    最常用吴攒、最簡單、最佳運行時性能:C<T> c

  • 其他初始化
    完全復制:C c(c1)
    部分復制:C c(it_b,it_e)
    指定初始化元素數(shù)目:C c(n)
    指定初始化元素數(shù)目和默認值:C c(n,t)

9.1.2 容器內(nèi)元素類型的約束

基本元素類型約束:可復制可賦值
不能作為容器元素類型舉例如下:

No. 類型 原因
1 引用類型 不可賦值
2 auto_ptr 不可復制
3 IO庫類型 不可復制賦值
  1. 容器操作的特殊要求
    支持復制和賦值是容器元素類型的最低要求砂蔽,一些容器操作需要特殊要求洼怔。例如:
操作 Operation 約束
空容器初始化 C<T> c 最低約束
指定元素個數(shù)和參數(shù)的容器初始化 C c(n,t) 帶參數(shù)t相同類型形參的構(gòu)造函數(shù)
指定元素個數(shù)的容器初始化 C c(n) 默認構(gòu)造函數(shù)

例如:Foo是一個沒有默認構(gòu)造函數(shù),但是有一個int型形參的構(gòu)造函數(shù)左驾。

vector<Foo> empty; // ok,不需要默認構(gòu)造函數(shù)
vector<Foo> bad(10);// error,需要默認構(gòu)造函數(shù)
vector<Foo> ok(10,1);// ok,需要`int`型形參的構(gòu)造函數(shù)

2.容器的容器
容器本身可以作為容器的元素類型镣隶。例如:vector<vector<int> >
注意诡右,最后兩個>之間需要有一個空格安岂。C++11已經(jīng)沒有這個要求了


收獲

本節(jié)主要講解Sequential Container的三個容器(vector,list,deque)和五種通用初始化方式;容器對元素類型是有最低約束的(可復制可賦值)帆吻,其他一些操作也會對元素有特殊約束要求域那。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市猜煮,隨后出現(xiàn)的幾起案子次员,更是在濱河造成了極大的恐慌,老刑警劉巖王带,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淑蔚,死亡現(xiàn)場離奇詭異,居然都是意外死亡愕撰,警方通過查閱死者的電腦和手機刹衫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門醋寝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绪妹,你說我怎么就攤上這事甥桂。” “怎么了邮旷?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵黄选,是天一觀的道長。 經(jīng)常有香客問我婶肩,道長办陷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任律歼,我火速辦了婚禮民镜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘险毁。我一直安慰自己制圈,他們只是感情好,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布畔况。 她就那樣靜靜地躺著鲸鹦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪跷跪。 梳的紋絲不亂的頭發(fā)上馋嗜,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音吵瞻,去河邊找鬼葛菇。 笑死,一個胖子當著我的面吹牛橡羞,可吹牛的內(nèi)容都是我干的眯停。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼卿泽,長吁一口氣:“原來是場噩夢啊……” “哼莺债!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起又厉,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎椎瘟,沒想到半個月后覆致,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡肺蔚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年煌妈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡璧诵,死狀恐怖汰蜘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情之宿,我是刑警寧澤族操,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站比被,受9級特大地震影響色难,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜等缀,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一枷莉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尺迂,春花似錦笤妙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至州疾,卻和暖如春辜限,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背严蓖。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工薄嫡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颗胡。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓毫深,卻偏偏與公主長得像,于是被迫代替她去往敵國和親毒姨。 傳聞我的和親對象是個殘疾皇子哑蔫,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,519評論 1 51
  • 標簽(空格分隔): STL 運用STL,可以充分利用該庫的設(shè)計弧呐,讓我為簡單而直接的問題設(shè)計出簡單而直接的解決方案闸迷,...
    認真學計算機閱讀 1,480評論 0 10
  • 參考書籍:C++ primer 第四版 順序容器:它將單一類型元素聚集起來成為容器,然后根據(jù)位置來存儲和訪問這些元...
    Mr希靈閱讀 1,086評論 0 7
  • 前面介紹過 vector 容器類型俘枫,這里會深入探討 vector 和其他順序容器(sequential conta...
    LuuilX閱讀 957評論 1 1
  • STL(標準模板庫)鸠蚪,是目前C++內(nèi)置支持的library今阳。它的底層利用了C++類模板和函數(shù)模板的機制师溅,由三大部分...
    歲與禾閱讀 39,015評論 3 133