C STL容器總結 序列式

2021-10-21 19:40:46 字數 1665 閱讀 4439

vector容器

vector容器是最簡單的序列式容器,支援隨機訪問,隨機儲存。

類似動態陣列,將元素置於動態陣列

vector可以實現佇列,陣列,堆疊的全部的功能

vector定義:vector vec;

vector函式:size()統計容器元素數量

capacity()返回容器最大可容納的元素數量

reserve()預先設定容器的大小

resize()修改容器的大小

empty()判斷容器是否為空

clear()清空容器中所有元素

front()返回容器中第乙個元素

back()返回容器中最後乙個元素

at(i)返回容器中第i-1個元素

push_back() 將元素插入容器尾部

insert()在任意位置插入

pop_back() 刪除容器尾部的元素

erase(begin(),end())刪除begin 到 end的元素

swap()元素交換位置

list容器

list由雙向鍊錶實現,每個節點儲存乙個元素,支援在兩個方向操作,插入刪除的速度迅速,查詢速度較慢,不支援隨機訪問,無下標操作符和at()函式

建立list:

list a 建立乙個空的list

list a(size)建立乙個容量為size的list

list a(size,value)l建立乙個容量為size值為value的list

list a(b)建立乙個list,元素和list b一樣

list的特殊函式

merge()將兩個list合併成乙個list並按從小到大的順序排列 l1.merge(l2) 將l2合併至l1

remove(a)刪除list中所有的元素a

splice(iterator a,list& x)將list x插入a的後面

splice(iterator a,list &x,iterator b)將list x 的b開始插入a的後面

splice(iterator c,list&x,iterator a,iterator b)將x的a到b位置的所有元素插入c的後面

unique()刪除重複的元素,只保留乙個

reverse()將容器中所有的元素反向排序

deque容器

deque是雙端佇列, 採用動態陣列來管理元素,隨機訪問,頻繁在兩端插入和刪除效率高,在中間插入刪除效率低,迭代器是智慧型指標,不支援對容器的重分配,多塊記憶體訪問,當一塊記憶體不使用則會釋放

建立deque

deque a 建立乙個空的deque

deque a(size)建立乙個容量為size的deque

deque a(size,value)l建立乙個容量為size值為value的deque

deque a(b)建立乙個deque,元素和dequeb一樣

deque a(b.begin(),b.end())建立乙個deque,元素為b.begin(),b.end()的元素

deque的特殊函式

push_back() 尾插

pop_back()尾刪

push_front()頭插

push_front()頭刪

assign()重置deque中某個元素的值

C STL容器總結

三大類容器 1.序列式容器 vector deque list vector是一種動態陣列,在記憶體中具有連續的儲存空間,支援快速隨機訪問。由於具有連續的儲存空間,所以在插入和刪除操作方面,效率比較慢。vector有多個建構函式,預設的建構函式是構造乙個初始長度為0的記憶體空間,且分配的記憶體空間是...

STL 序列式容器的總結

序列式容器 sequence containers 所謂序列式容器,其中的元素都可序 ordered 但未必有序 sorted c 語言本身提供了乙個序列式容器array,stl另外再提供了vector,list,deque,stack,queue,priority queue等等序列式容器。其中s...

序列式容器

容器的概觀與分類 常用的資料結構不外乎array 陣列 list 鍊錶 tree 樹 stack 堆疊 queue 佇列 hash table 雜湊表 set 集合 map 對映 等等。根據 資料再容器中的排列 特性,這些資料結構分為序列式和關聯式。vector概述 vector的資料安排以及操作方...