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的資料安排以及操作方...