出10 4類容器

2021-06-21 11:32:47 字數 1154 閱讀 5448

到目前為止的stl庫最常用的功能是stl容器類。如果你需要在容器類快速複習課,檢查出10.4類容器。

stl包含許多不同的容器類,可以用在不同的場合。一般來說,容器類分為三類:序列容器,關聯容器,容器介面卡。我們要做乙個快速的概述的容器在這裡。

序列容器

序列包含容器類,保持容器中的元素的順序。序列容器定義的特點是,你可以選擇在**插入元素的位置。一種順序容器的最常見的例子是:如果你把四個元素的陣列的陣列中的元素,將它們的順序插入。

stl序列容器包含3:向量,deque容器,和列表。

如果你曾經採取物理,你可能正在考慮乙個向量作為一種具有大小和方向的實體。不幸的命名向量類stl是乙個能夠為需要抑制其生長動態陣列元素。vector類允許隨機訪問元素,通過運營商[ ],插入和刪除元素的載體一般是快結束。

下面的程式插入6號為載體,採用過載操作符來訪問他們為了列印。

從mystruct沒有initializer_list建構函式,它會檢查是否有乙個建構函式的引數的型別(int,float)。裡,以便建構函式被呼叫。

雖然它最初看起來可能像統一的初始化語法總是比標準的建構函式語法,有兩個可以提供不同的結果:12

std::向量< in> v1(8);//建立大小為8的空向量,使用int建構函式

std::向量< in> v1 ;//建立資料值的8一一元向量,利用initializer_list建構函式

這是因為initializer_list建構函式優先於其他建構函式初始化時做**的。

你也可以使用統一的初始化語法時呼叫或返回值的函式:12

3456

78910

無效的usemystruct(mystruct x)

usemystruct();//使用統一的初始化建立mystruct含蓄

makemystruct裡(無效)

;//使用統一的初始化建立mystruct含蓄

}初始化列表與初始化列表

的名字「初始化列表」的選擇是不幸的,因為它得到「初始化列表」混淆起來非常容易,這是乙個類似的概念。這裡的差異:

初始化列表是用來做隱式分配類變數作為乙個構造器:

1(int x,y裡浮動):m_nx(x),m_ny(y);// m_nx和m_ny的初始化列表的一部分

乙個初始化列表是乙個列表,括號({})初始化,可以用來初始化簡單聚合資料型別和類的實現

C 10 4 關聯容器 set 型別

set容器不提供下標操作符。為了通過鍵從set中獲取元素,可使用find 運算。如果只需要判斷某個元素是否存在,同樣可以使用count 運算,返回set 中該鍵對應的元素個數。對於set 容器,count 的返回值只能是1 元素存在 或0 元素不存在 set 容器和list 容器的區別 vector...

同步類容器和併發類容器

同步類容器都是執行緒安全的,但是某些場景下可能需要加鎖來保護復合操作。復合類操作如 迭代 反覆訪問元素,遍歷完容器中所有的元素 跳轉 根據指定的順序找到當前元素的下乙個元素 以及條件運算。這些復合操作在多執行緒併發地修改容器時,可能會表現出意外的行為,最經典的便是concurrentmodifica...

同步類容器和併發類容器

同步類容器都是執行緒安全的,但在某些場景下可能需要加鎖來保護復合操作。復合類操作。如 迭代 反覆訪問元素,遍歷完容器中所有的元素 跳轉 根據指定的順序找到當前元素的下乙個元素 以及條件運算。這些復合操作在多執行緒併發地修改容器時,可能會表現出意外的行為,最經典的便是concurrentmodific...