C 11新特性(37) 關聯容器的列表初始化

2021-08-20 18:29:53 字數 947 閱讀 1166

什麼是關聯容器

關聯容器(associative container)並不是c++11才有的概念,之所以叫關聯容器是因為容器中的元素是通過關鍵字來儲存和訪問的,與之相對的是順序容器(sequence container),其中的元素是通過它們在容器的位置來儲存和訪問的。

順序容器的例子

vector

name;

name[2]=

"zhou";

cout

<

<

無論是向vector寫入元素,還是從vector讀出元素都使用索引,它本質上是元素在容器中的位置。

關聯容器的例子

map

int>scores;

scores["zhao"]=

10;scores["qian"]=

20;cout

<

<

無論是向map寫入資料,還是從map讀出資料都是使用關鍵字。

關聯容器的列表初始化

同順序容易一樣,關聯容器也可以使用列表初始化,對於上面的例子,也可以這樣編碼:

map
int>scores,

};cout

<

<

就好像初始化結構體陣列的感覺。

作者觀點

靠直覺就能編出正確的程式,這才像個高階語言的樣子。

覺得本文有幫助?請分享給更多人。

c 11的新特性

1 型別說明符auto 2.decltype提取型別 int a 0 decltype a b b 10 cout b endl 3.基於範圍的for迴圈 4.虛函式的override和final指示符 final修飾類 類無法被繼承 final修飾虛函式 虛函式不能被重寫 override就是輔助...

C 11的新特性

c 11提供在類中定義類的資料成員,可以直接在成員之後新增 預設值 當通過編譯器自動生成的預設建構函式初始化物件時,對應的資料成員就會被初始化成對應的預設值。class test int main 在c 98中,陣列可以使用 來進行初始化,對自定義型別是不可以的。在c 11中,的使用範圍變得更廣,可...

C 11的新特性

1.auto關鍵字 編譯器可以根據初始值自動推導出型別。但是不能用於函式傳參以及陣列型別的推導。2.nullptr關鍵字 nullptr是一種特殊型別的字面值,它可以被轉換成任意其它的指標型別 而null一般被巨集定義為0,在遇到過載時可能會出現問題。3.智慧型指標 c 11新增了std share...