stl容器主要有序列式容器和關聯式容器以及一些衍生而來容器配接器
序列式容器:vector、deque、list
關聯式容器:set、map
常見配接器:stack、queue
下面分別對其進行介紹
(1) 陣列的公升級版,可以動態管理記憶體。當容量不足時,會開闢乙個新的空間,將資料拷貝過去,再釋放原空間。
(2) 當刪除元素時,不會釋放對應的空間,所以向量容器的容量(capacity)一般大於向量容器的大小(size);
(3) 對於刪除或插入操作,執行效率不高,越靠後插入或刪除執行效率越高;
(4) 高效的隨機訪問的容器,適用於插入和刪除操作較少的場景。
#include
vector<
int>v //預設建立,此時無法使用索引插入元素
vector<
int>v(
10)//指定大小建立,預設初始化為0
vector<
int>v(
10,2)
//建立的同時初始化(十個元素,值都為2)
vector<
int> v
//可以隨意指定元素個數及元素的值
v.
capacity()
//查詢容器容量
v.size()
//查詢容器內元素個數
v.push_back(5
)//在尾部插入元素
v.pop_back()
//刪除尾部元素
v[i]
//注意下標不可以越界
v.front()
//獲取第乙個元素
v.end()
//獲取最後乙個元素
v.begin()
//返回容器頭部迭代器
v.end()
//返回容器尾部迭代器
v.insert
(pos,num)
//在指定位置插入元素
v.insert
(pos,n,num)
//在指定位置插入n個元素num
reverse
(iter1,iter2)
//將兩個迭代器間的元素反轉
具有分段陣列和索引陣列,其中分段陣列用來儲存資料,索引陣列用來儲存每個分段的首部位址。支援下標訪問,與vector相比支援快速的兩端的插入和刪除,同樣存在中間位置插入刪除較為複雜的問題。
#include
deque<
int> dq //預設建立,此時無法進行下標相關的操作
deque<
int>dq(
10)//指定物件的大小(元素數量)
dp[i]
//返回第i個元素
dq.front()
//返回第乙個元素
dp.back()
//返回最後乙個元素
dp.begin()
//返回首部迭代器
dp.end()
//返回尾部迭代器
dp.push_back(5
)//尾部插入元素
dp.push_front(5
)//首部插入元素
dp.insert
(pos,nums)
//在pos處插入元素
#include
deque<
int> l //預設建立,此時無法進行下標相關的操作
deque<
int>l(
10)//指定物件的大小(元素數量)
l.
front()
//返回第乙個元素
l.back()
//返回最後乙個元素
l.begin()
//返回首部迭代器
l.end()
//返回尾部迭代器
l.push_back
(int*)
//尾部插入元素
l.push_front
(int*)
//首部插入元素
l.insert
(pos,
int*
)//在pos處插入元素
STL容器使用總結
include include include include include include 優先佇列,大的元素自動排在隊頭 include key唯一,重複會覆蓋 多重對映,允許有重複的key include 集合 相當於沒有value的對映using namespace std void pu...
STL容器使用DEMO vector
code author lin yiqian created 2009 08 24 describe stl vector 使用demo include include using namespace std typedef vector int vec 列印vector void printvec...
STL容器使用DEMO multimap
code author lin yiqian created 2009 08 24 describe stl multimap 使用demo include include include using namespace std typedef multimap str mmap 列印multima...