久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

C STL學(xué)習(xí)之三:容器deque深入學(xué)習(xí)

 流沙東數(shù)據(jù)王 2012-04-14
C++ STL學(xué)習(xí)之三:容器deque深入學(xué)習(xí)
2012-04-10 09:23:41     我來(lái)說(shuō)兩句 
收藏    我要投稿    [字體: ]

C++ STL容器deque和vector很類(lèi)似,也是采用動(dòng)態(tài)數(shù)組來(lái)管理元素,。

使用deque之前需包含頭文件:

#include <deque>

 

它是定義在命名空間std內(nèi)的一個(gè)class template:

template<class _Ty,
class _Ax = allocator<_Ty> >
class deque;

 

第一個(gè)template參數(shù)用來(lái)表示元素型別,,第二個(gè)可有可無(wú),指定內(nèi)存模型,。一般使用默認(rèn)的內(nèi)存模型,。

與vector不同的是deque的動(dòng)態(tài)數(shù)組首尾都開(kāi)放,因此能夠在首尾進(jìn)行快速地插入和刪除操作,。

deque的邏輯結(jié)構(gòu):

 \

 

deque的內(nèi)部結(jié)構(gòu)

deque是一種優(yōu)化了的對(duì)序列兩端元素進(jìn)行添加和刪除操作的基本序列容器,。通常由一些獨(dú)立的區(qū)塊組成,第一區(qū)塊朝某方向擴(kuò)展,,最后一個(gè)區(qū)塊朝另一方向擴(kuò)展,。它允許較為快速地隨機(jī)訪問(wèn)但它不像vector一樣把所有對(duì)象保存在一個(gè)連續(xù)的內(nèi)存塊,而是多個(gè)連續(xù)的內(nèi)存塊,。并且在一個(gè)映射結(jié)構(gòu)中保存對(duì)這些塊以及順序的跟蹤,。

其內(nèi)部結(jié)構(gòu)如下圖所示:

 \

 


deque的特點(diǎn):

1、支持隨機(jī)訪問(wèn),,即支持[]以及at(),,但是性能沒(méi)有vector好。

2,、可以在內(nèi)部進(jìn)行插入和刪除操作,,但性能不及l(fā)ist。

 


deque和vector的不同之處:


1,、兩端都能夠快速插入和刪除元素。vector只能在尾端進(jìn)行,。

2,、deque的元素存取和迭代器操作會(huì)稍微慢一些。因?yàn)閐eque的內(nèi)部結(jié)構(gòu)會(huì)多一個(gè)間接過(guò)程,。

3,、迭代器是特殊的智能指針,而不是一般指針。它需要在不同的區(qū)塊之間跳轉(zhuǎn),。

4,、deque可以包含更多的元素,其max_size可能更大,。因?yàn)椴恢故褂靡粔K內(nèi)存,。

5、不支持對(duì)容量和內(nèi)存分配時(shí)機(jī)的控制,。

注意:在除了首尾兩端的其他地方插入和刪除元素,,都將會(huì)導(dǎo)致指向deque元素的任何pointers、references,、iterators失效,。不過(guò),deque的內(nèi)存重分配優(yōu)于vector,。因?yàn)槠鋬?nèi)部結(jié)構(gòu)顯示不需要復(fù)制所有元素,。

6、deque的內(nèi)存區(qū)塊不再被使用時(shí),,會(huì)被釋放,。deque的內(nèi)存大小是可縮減的。不過(guò),,是不是這么做以及怎么做由實(shí)作版本定義,。

 

deque和vector相似的特性:

1、在中間部分插入和刪除元素相對(duì)較慢,,因?yàn)樗性囟家灰苿?dòng),。

2、迭代器屬于隨即存取迭代器,。

 

最好采用deque的情形:

1,、需要在兩端插入和刪除元素。

2,、無(wú)需引用容器內(nèi)的元素,。

3、要求容器釋放不再使用的元素,。

 

deque的操作函數(shù)

構(gòu)造函數(shù)和析構(gòu)函數(shù):

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多