一、vector&deque(唯二支援隨機訪問的容器)
1.插入:
v.
push_back(5
);v.insert
(it,5)
;//在制指定位置插入
v.insert
(p,n,t)
;//在p迭代器位置插入n個t
v.insert
(p,b,e)
;//在p迭代器位置插入b迭代器和e迭代器之間的元素
dq.push_front()
;
2.刪除
v.
pop_back()
;v.erase
(it)
;dq.
pop_front()
;
3.排序,查詢,二分查詢
sort
(v,v+
5,mycompare)
;find
(v,v+
5,val)
;//複雜度為n,返回val所在處的迭代器
binary_search
(v,v+
5,val)
;
4.頭尾元素,大小/是否為空
v.
front()
;v.end();
v.size()
;v.empty()
;
5.返回頭/尾引用:
v.
front()
;v.back()
;
5.清空
v.
clear()
;
二、list
除了一中的3(即需要隨機訪問迭代器的演算法)都支援
多出來的功能:
1.成員函式sort
l.
sort
(mycompare)
//此處可以用greater,less等
2.刪除所有等於value的值
l.
remove
(val)
;
3.移除相同元素
l.
sort()
;l.unique()
;//必須先排序再unique才能達到效果
3.合併鍊錶
l1.
merge
(l2)
;//被合併的鍊錶l2會被清空
4.翻轉鍊錶
l.
reverse()
;
5.在指定位置前面插入另一煉表中的乙個或多個元素,並在另一煉表中刪除被插入的元素
p1 =
find
(lst1.
begin()
,lst1.
end(),
3); p2 =
find
(lst2.
begin()
,lst2.
end(),
200)
; p3 =
find
(lst2.
begin()
,lst2.
end(),
400)
; lst1.
splice
(p1,lst2,p2, p3)
;//將[p2,p3)插入p1之前,並從lst2中刪除[p2,p3)
三、容器介面卡
1.stack
stk.
push(5
);stk.
pop();
stk.
top();
stk.
empty()
;stk.
size()
;
2.queue
q.
push()
;q.pop();
q.top()
;q.front()
;//與top功能相同
q.back()
;q.empty()
;q.size()
;
3.priority_queue
其他用法同queue,差別在宣告的時候
#刪除函式要求每次刪除操作都保證刪除為所有元素中最大元素。
priority_queue<
int,vector<
int>
,greater<
int>
> pq;
宣告的時候如果要寫比較規則要注意
①必須宣告第二個值——構造方式(vector/queue)
②比較方式必須為函式物件或者顯式的函式指標
四、set&multiset
1.宣告:
注意myless是乙個函式物件!!
2.成員函式:
注意如果是set,則insert會返回乙個pair物件,first為所插入元素等值元素的指標,second為本次插入是否進行。
五、map&multimap:
map/multimap裡面存放的都是pair物件。容器按照first(key值進行排序)
1.宣告:
2.成員函式:
基本同set,但是要注意
pairs.
insert
(mmid::
value_type(15
,2.7))
;//multimap裡面有定義 :
typedef pair<
const key, t> value_type;
pairs.
insert
(make_pair(15
,2.7))
;
3.map的特殊用法:
map成員函式:
由於map裡面乙個key值只能有乙個,所以可以用來進行索引,
STL容器之 set 原理,成員函式
不可以加減運算,只能遞增遞減,因為記憶體不連續 成員方法 自定義set的排序函式 因為是二叉樹,且是比較平衡的二叉查詢樹,所以查詢效率自然是很好的,o log n o log n o logn 用的是二分查詢 隨著元素數目的增多,即橫座標x增大,縱座標,即查詢次數y log 2 xy log 2 x...
C 容器vector的常用成員函式
vector容器是筆試時最經常用到的容器,它實際是乙個類模板,它所具有一些成員函式我們必須熟練使用,這樣才會加快程式設計速度。首先加標頭檔案並定義 include vector vec 1 獲取vector裡的元素個數 int len vec.size 2 向vector新增元素 int temp ...
STL 容器的常用操作
基礎資料結構 deque 佇列 雙向表 list 雙向鍊錶 vector 單向鍊錶 include include include include include include include include includeusing namespace std int main01 a.pop ...