2 4 C STL deque容器詳解

2022-10-07 00:21:18 字數 2396 閱讀 1486

deque容器模擬vector容器來學習。

deque為雙向開口容器,見下圖。而對比vector容器作為單項開口容器,在頭部插入與刪除的操作效率奇差。

常用api應用學習 deque容器常用api

原理機制這裡不深究,本章僅**如何使用deque。感興趣的同學可以自己搜尋,這裡放一張原理圖

&d)//列印函式(這裡不需要引用&)

cout << endl;*/

//法二

for(deque<

int>

::iterator it = d.

begin()

; it != d.

end(

); it++

) cout <<

*it <<

" ";

//取*資料型別對應deque<>型別

cout << endl;

}//deque容器構造(初始化)

void

text01()

//deque容器賦值

void

text02()

else

d1.resize(5

);//這裡扔掉後五個元素

printd

(d1);}

//deque容器插入刪除

去除最高最低分這裡用雙向開口容器顯然是高效的,**如下。

//建立5個選手,姓名得分,評委為其打分

#include

#include

#include

#include

#include

using

namespace std;

class

player

player

(string name_,

int score_)

:name

(name_)

,score

(score_)

public

: string name;

int score;};

//建立選手

void

greate_play

(vector

&v)}

//打分

void

setscore

(vector

&v)//排序

sort

(dscore.

begin()

, dscore.

end())

;//去掉最高分最低分

dscore.

pop_front()

; dscore.

pop_back()

;//求平均分

int totalscore =0;

for(deque<

int>

::iterator dit = dscore.

begin()

; dit != dscore.

end(

); dit++

)int **erage = totalscore / dscore.

size()

;//儲存分數

(*it)

.score = **erage;}}

bool

cmp(player a, player b)

//排名

void

printrank

(vector

& v)

}int

main()

執行結果如下:

deque在去「頭」去「尾」的案列中有較高效率。

STL容器詳解

3.1.stl容器 1 序列式容器 sequence containers 每個元素都有固定位置 取決於插入時機和地點,和元素值無關,vector deque list vectors 將元素置於乙個動態陣列中加以管理,可以隨機訪問元素 用索引直接訪問 陣列尾部新增或移除元素非常快速。但是在中部或頭...

springIOC容器詳解

springioc容器又被搞了,我tm今天要搞定這個東西 我目前看過最好的講解是這篇作者的 spring的ioc容器在實現控制反轉和依賴注入的過程中,可以劃分為兩個階段 這兩個階段中,ioc容器分別作了以下這些事情 2 ioc容器及ioc容器如何獲取物件間的依賴關係 spring中提供了兩種ioc容...

C 容器詳解

vector set multiset map和multimap 一 vector 在使用它時,需要包含標頭檔案 include vector 容器與陣列相比其優點在於它能夠根據需要隨時自動調整自身的大小以便容下所要放入的元素。此外,vector 也提供了許多的方法來對自身進行操作 二 向量的宣告及...