STL容器的常用成員函式

2021-10-23 01:38:43 字數 3377 閱讀 1152

一、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 ...