STL 3種順序容器的基本功能和特性

2021-07-12 05:50:15 字數 2762 閱讀 6690

1.順序容器的基本功能

stl中的順序容器包括向量(vector)、雙端佇列(deque)和列表(list)

(1)建構函式

s s(n,t);  //構造乙個由n個t元素構成的容器例項s。

s s(n); //構造乙個有n個元素的容器例項s,每個元素都是t()。

s s(q1,q2);//使用將[q1,q2)區間內的資料作為s的元素構造s。

(2)賦值函式

s.assign(n,t)    //賦值後的容器由n個t元素構成。

s.assign(n) //賦值後的容器有n個元素的容器例項s,每個元素都是t()。

s.assign(q1,q2) //賦值後的容器的元素為[q1,q2)區間內的資料。

(3)元素的插入

s.insert(p1,t)     //在s容器中,p1所指向的位置插入乙個新的元素t,插入後的元素夾在原p1和p1-1所指向的元素之間,該函式會返回乙個迭代器指向新插入的元素。

s.insert(p1,n,t) //在s容器中p1所指向的位置插入n個新的元素t,插入後的元素夾在原p1和p1-1所指向的元素之間,沒有返回值。

s.insert(p1,q1,q2) //將[q1,q2)區間內的元素順序插入到s容器中p1位置處,新元素夾在原p1和p1-1所指向的元素之間。

(4)元素的刪除

s1.erase(p1)   //刪除s1容器中p1所指向的元素,返回被刪除的下乙個元素的迭代器。

s1.erase(p1,p2)//刪除s1容器中[q1,q2)區間內的元素,返回最後乙個被刪除元素的下乙個元素的迭代器。

(5)改變容器的大小

s1.resize(n)  //將容器的大小變為n,如果原有的元素個數大於n,則容器末尾多餘的元素會被刪除;如果原有的元素個數小於n,則在容器末尾會用t()填充。
(6)首尾元素的直接訪問

s.front()    //獲得容器首元素的引用。

s.back() //獲得容器尾元素的引用。

(7)在容器尾部插入、刪除元素

s.push_back(t)  //向容器尾部插入元素t。

s.pop_back() //將容器尾部的元素刪除。

(8)在容器頭部插入、刪除元素

s.push_front(t)  //向容器頭部插入元素t。

s.pop_front() //刪除容器頭部的元素t。

2.順序容器特性比較

操作向量(vector)

雙端佇列(deque)

列表(list)

隨機訪問快較慢

不能頭部插入

(push_front)

沒有push_front,只能用insert

完成快,

已有迭代器失效,已有指標、

引用不會失效

快,已有迭代器、指標、引用

都不會失效

頭部刪除

(pop_front)

沒有pop_front , 只能用erase完成快

只會使被刪除元素的迭代器、

指標、引用失效

快只會使被刪除元素的迭代器、

指標、引用失效

尾部插入

(push_back)

快當發生容器擴充套件時,會使所有已有

的迭代器、指標、引用失效,否則

不會使任何已有的迭代器、指標、

引用受到影響

快已有迭代器失效,已有指標、

引用不會失效

快已有迭代器、指標、引用都不

會失效尾部刪除

(pop_back)

快只會使被刪除元素的迭代器、指標、

引用失效

快只會使被刪除元素的迭代器、指標、

引用失效

快只會使被刪除元素的迭代器、指標、

引用失效

任意位置插入

(insert)

插入位置越接近頭部越慢。

當發生容器擴充套件時,會使所有迭代器、

指標、引用失效,否則之後使插入位置

之後的迭代器、指標、引用失效

插入位置越接近中間越慢

會使所有迭代器、指標、

引用失效

快只會使被刪除元素的迭代器、指標、

引用失效

任意位置刪除

(erase)

刪除位置越接近頭部越慢

只會使刪除位置之後的迭代

器、指標、引用失效

刪除位置越接近中間越慢

會使所有迭代器、指標、引用失效

快只會使被刪除元素的迭代器、指標、

引用失效

C語言實現順序佇列的基本功能

front指向佇列的隊頭元素,rear指向隊尾元素的下乙個。因為鏈式佇列有頭節點,順序佇列沒得頭節點 為了判斷是否未滿,最後乙個空間不放元素 include include define max 100 struct book typedef struct node sqqueue intis em...

順序表的基本功能(C語言實現)

include include define maxsize 100 define true 1 define ok 1 define false 0 define error 0 define overflow 1 typedef int elemtype typedef int status t...

物聯網的十大基本功能和形態四種

報警聯動 主要提供事件報警和提示,有時還會提供基於工作流或規則引擎 rule sengine 的聯動功能。指揮排程 基於時間排程和事件響應規則的指揮 排程和派遣功能。預案管理 基於預先設定的規章或法規對事物產生的事件進行處置。安全隱私 由於物聯網所有權屬性和隱私保護的重要性,物聯網系統必須提供相應的...