STL容器的基本特性和特徵

2022-02-07 01:59:45 字數 1256 閱讀 3495

1. stl有6種序列容器型別

(1)vector

它提供對元素的隨即訪問,在尾部新增和刪除元素的時間是固定的,在頭部或中部插入和刪除元素的複雜度為線性時間。

(2)deque

在檔案中宣告。

是雙端佇列,支援隨即訪問。從deque的開始與末尾位置插入和刪除元素的時間是固定的。

儘管vector和deque都提供對元素的隨機訪問和在序列中部執行線性時間的插入和刪除操作,但vector容器執行這些操作時速度更快一些。

(3)list

是雙向鍊錶,插入刪除元素時間固定。不支援隨機訪問。與vector不同是,當向容器中插入或刪除元素後,鍊錶迭代器指向元素將不變。

解釋一下:如果乙個vector有5個元素,中間插入乙個,那麼第五個元素包含的值將是以前第四個元素的值,因此,迭代器指向的位置不變,但是資料不同。然而,在鍊錶中插入新元素並不會移動已有的元素,而只是修改鏈結資訊。 指向某個元素的迭代器仍然指向該元素,也就是值相同,鏈結的位置不同了。

(4)queue

在標頭檔案中宣告。 queue是乙個介面卡類,底層類預設為deque。 它不允許隨機訪問佇列元素,甚至不允許遍歷佇列。可以將元素新增到隊尾,檢視隊尾和隊首的元素的值,檢查元素數目和測試佇列是否為空。

(5)priority_queue

與queue的不同是,最大的元素總是在隊首,也是乙個介面卡類,預設的底層類是vector。

可以修改用於確定哪個元素放在隊首的比較方式,方法是提供乙個可選的構造函式引數。

(6)stack

也是乙個介面卡類,預設的底層實現為vector。 不允許隨機訪問堆疊元素,甚至不允許遍歷堆疊。可以壓入到棧頂,從棧頂彈出元素,檢視棧頂元素的值,檢查元素數目和測試堆疊是否為空。

2. stl有4種聯合容器:set,multiset, map, multimap;

聯合容器將值與關鍵字關聯在一起,使用關鍵字來查詢值。

關聯容器的長處在於,它提供了對元素的快速訪問。 與序列相似,聯合容器也允許插入新元素,不過不能指定元素的插入位置。原因是聯合容器通常包含用於確定資料存放位置的演算法,以便能夠很快檢索資訊。

(1)set,multiset

前兩種是在set標頭檔案中(以前分別為set.h和multiset.h);

值的型別與關鍵字相同。 set刪除相同的元素,multiset不會。

(2)map,multimap

後兩種是在map標頭檔案中(以前分別為map.h和multimap.h)。

值的型別與關鍵字不同。 map關鍵字唯一,multimap關鍵字不唯一。

STL容器的基本特性和特徵

1.stl有6種序列容器型別 1 vector 它提供對元素的隨即訪問,在尾部新增和刪除元素的時間是固定的,在頭部或中部插入和刪除元素的複雜度為線性時間。2 deque 在檔案中宣告。是雙端佇列,支援隨即訪問。從deque的開始與末尾位置插入和刪除元素的時間是固定的。儘管vector和deque都提...

STL容器的基本特性和特徵

1.stl有6種序列容器型別 1 vector 它提供對元素的隨即訪問,在尾部新增和刪除元素的時間是固定的,在頭部或中部插入和刪除元素的複雜度為線性時間。2 deque 在檔案中宣告。是雙端佇列,支援隨即訪問。從deque的開始與末尾位置插入和刪除元素的時間是固定的。儘管vector和deque都提...

STL 基本容器

1.順序容器與關聯容器 c 中有兩種型別的容器 順序容器和關聯容器,順序容器主要有 vector list deque等。其中vector表示一段連續的記憶體位址,基於陣列的實現,list表示非連續的記憶體,基於鍊錶實現。deque與vector類似,但是對於首元素提供刪除和插入的雙向支援。關聯容器...