STL常見型別操作

2021-10-08 14:58:51 字數 2704 閱讀 1849

// queue

#include

queue<

int> q;

q.empty()

// 如果隊列為空返回true,否則返回false

q.size()

// 返回佇列中元素的個數

q.pop()

//刪除佇列首元素但不返回其值

q.front()

// 返回隊首元素的值,但不刪除該元素

q.push

(x)//在隊尾壓入新元素 ,x為要壓入的元素

q.back()

//返回佇列尾元素的值,但不刪除該元素

// stack

#include

stack<

int> s;

s.empty()

//如果棧為空返回true,否則返回false

s.size()

//返回棧中元素的個數

s.pop()

//刪除棧頂元素但不返回其值

s.top()

//返回棧頂的元素,但不刪除該元素

s.push

(x)//在棧頂壓入新元素 ,引數x為要壓入的元素

// vector string(有部分適用)

(1)a.

assign

(b.begin()

, b.

begin()

+3);

//b為向量,將b的0~2個元素構成的向量賦給a

(2)a.

assign(4

,2);

//是a只含4個元素,且每個元素為2

(3)a.

back()

;//返回a的最後乙個元素

(4)a.

front()

;//返回a的第乙個元素

(5)a[i]

;//返回a的第i個元素,當且僅當a[i]存在2013-12-07

(6)a.

clear()

;//清空a中的元素

(7)a.

empty()

;//判斷a是否為空,空則返回ture,不空則返回false

(8)a.

pop_back()

;//刪除a向量的最後乙個元素

(9)a.

erase

(a.begin()

+1,a.begin()

+3);

//刪除a中第1個(從第0個算起)到第2個元素,也就是說刪除的元素從a.begin()+1算起(包括它)一直到a.begin()+3(不包括它)(包前不包後)

(10)a.

push_back(5

);//在a的最後乙個向量後插入乙個元素,其值為5

注:emplace_back在c11中可以替代push_back

(11)a.

insert

(a.begin()

+1,5

);//在a的第1個元素(從第0個算起)的位置插入數值5,如a為1,2,3,4,插入元素後為1,5,2,3,4

(12)a.

insert

(a.begin()

+1,3

,5);

//在a的第1個元素(從第0個算起)的位置插入3個數,其值都為5

(13)a.

insert

(a.begin()

+1,b+3

,b+6);

//b為陣列,在a的第1個元素(從第0個算起)的位置插入b的第3個元素到第5個元素(不包括b+6),如b為1,2,3,4,5,9,8,插入元素後為1,4,5,9,2,3,4,5,9,8

(14)a.

size()

;//返回a中元素的個數;

(15)a.

capacity()

;//返回a在記憶體中總共可以容納的元素個數

(16)a.

resize(10

);//將a的現有元素個數調至10個,多則刪,少則補,其值隨機

(17)a.

resize(10

,2);

//將a的現有元素個數調至10個,多則刪,少則補,其值為2

(18)a.

reserve

(100);

//將a的容量(capacity)擴充至100,也就是說現在測試a.capacity();的時候返回值是100.這種操作只有在需要給a新增大量資料的時候才顯得有意義,因為這將避免記憶體多次容量擴充操作(當a的容量不足時電腦會自動擴容,當然這必然降低效能)

(19)a.

swap

(b);

//b為向量,將a中的元素和b中的元素進行整體**換

(20)a==b;

//b為向量,向量的比較操作還有!=,>=,<=,>,<(21

)reverse

(a.begin()

, a.

end())

// list

push_back

remove

// 注:

count函式的功能是:統計容器中等於value元素的個數。

count_if :返回區間中滿足指定條件的元素數目。

使用count,返回的是被查詢元素的個數。注意:map中不存在相同元素,所以返回值只能是1或0。

使用find,返回的是被查詢元素的位置,沒有則返回map.

end(

)。

STL 容器型別

1.stl有6種序列容器型別 1 vector 向量 相當於乙個陣列 在記憶體中分配一塊連續的記憶體空間進行儲存。支援不指定vector大小的儲存。stl內部實現時,首先分配乙個非常大的記憶體空間預備進行儲存,即capacituy 函式返回的大小,當超過此分配的空間時再整體重新放分配一塊記憶體儲存,...

STL 容器型別

1.stl有6種序列容器型別 1 vector 向量 相當於乙個陣列 在記憶體中分配一塊連續的記憶體空間進行儲存。支援不指定vector大小的儲存。stl內部實現時,首先分配乙個非常大的記憶體空間預備進行儲存,即capacituy 函式返回的大小,當超過此分配的空間時再整體重新放分配一塊記憶體儲存,...

STL容器型別

1.stl有6種序列容器型別 1 vector 它提供對元素的隨即訪問,在尾部新增和刪除元素的時間是固定的,在頭部或中部插入和刪除元素的複雜度為線性時間。2 deque 在檔案中宣告。是雙端佇列,支援隨即訪問。從deque的開始與末尾位置插入和刪除元素的時間是固定的。儘管vector和deque都提...