stl容器分為順序容器和關聯容器
其中順序容器最常用的由vector,list,queue
1.vector
vector: 向量容器,可以看作變長陣列,長度可根據需要自行變化。
使用的標頭檔案 #include
定義方式: vector陣列名;//vectorar;
訪問容器內資料的方式和普通陣列相同,可以用ar[i]的形式,也可以用迭代器訪問
迭代器定義:vector::iterator it;
常用的介面函式:
1.1 push_back();
push_back(x);//將x插入到最後乙個元素後面,時間複雜度o(1);
1.2 insert();
ar.insert(it,x);//向迭代器it位置前插入元素x,時間複雜度o(1)~o(n);
ar.insert(it,num,x);//向迭代器it位置前插入num個元素x,時間複雜度o(n)~o(n^2)
ar.insert(it,begin,end);//向it位置前插入從begin位置到end位置的值o(n)~o(n^2)
1.3 size();
用來獲取vector中元素個數,時間複雜度o(1)
1.4 clear();
清空vector中元素,時間複雜度o(n);
1.5 pop_back();
刪除vector中最後1個元素
1.6 erase();
刪除vector中某個元素或某個範圍內的元素
erase(position);//刪除乙個元素(position)
erase(first,last);//刪除first到last範圍內的元素
其中position,first,last都是vector迭代器
2.list
底層實現為雙向鍊錶,與向量相比,插入和刪除更高效,但不能按下標隨機訪問
使用的標頭檔案#include
push_back();//尾部插入乙個元素
push_front();//頭部插入乙個元素
size();//返回list中元素個數
sort();//給list中元素排序
pop_back();//尾部刪除
pop_front();//頭部刪除
erase();//刪除乙個元素
insert();//插入乙個元素到list中
clear();//刪除所有元素
3.queue
queue:佇列。使用的標頭檔案#include
push();//入隊
pop();//出隊
size();//返回佇列中元素的個數
empty();//判斷佇列是否為空,若為空,返回true,否則返回false
front();//返回隊頭元素(第乙個入隊的元素)
back();//返回隊尾元素(最後乙個入對的元素)
STL總結之順序容器
1.vector 動態確定長度,支援隨機訪問,array是靜態空間。然後資料結構主要是三個迭代器 普通指標即可 start 表示目前使用空間的頭 end 表示目前使用空間的尾 end of storage 表示目前可用空間的尾 動態增加大小,並不是在原空間之後接續新空間,而是以原大小的兩倍 不完全是...
STL順序容器陣列之vector
向量 動態陣列 標頭檔案 include vectorvec 中放資料型別,vec是變數名 vector vec1 5 乙個大小為5的陣列 vector vec2 5,12 乙個大小為5的陣列,以12填充 定義示例 vector iterator ite 在codeblocks中定義物件時初始化了幾...
STL順序容器之鍊錶
list雙向鍊錶 forward list向前鍊錶 單向 操作都在煉表頭 2011年新標準 略 include list 結構體 變數名 for each ls2.begin ls2.end fun list iterator ite ls2.begin ite 只能 不能 2 3 無容量概念 si...