国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++中的deque總結(jié)

2019-11-08 02:31:31
字體:
供稿:網(wǎng)友

Deque雙端隊列容器

一、基本原理

    deque的元素數(shù)據(jù)采用分塊的線性結(jié)構(gòu)進行存儲,如圖所示。deque分成若干線性存儲塊,稱為deque塊。塊的大小一般為512個字節(jié),元素的數(shù)據(jù)類型所占用的字節(jié)數(shù),決定了每個deque塊可容納的元素個數(shù)。

所有的deque塊使用一個Map塊進行管理,每個Map數(shù)據(jù)項記錄各個deque塊的首地址。Map是deque的中心部件,將先于deque塊,依照deque元素的個數(shù)計算出deque塊數(shù),作為Map塊的數(shù)據(jù)項數(shù),創(chuàng)建出Map塊。以后,每創(chuàng)建一個deque塊,都將deque塊的首地址存入Map的相應數(shù)據(jù)項中。

  在Map和deque塊的結(jié)構(gòu)之下,deque使用了兩個迭代器M_start和M_finish,對首個deque塊和末deque塊進行控制訪問。迭代器iterator共有4個變量域,包括M_first、M_last、M_cur和M_node。M_node存放當前deque塊的Map數(shù)據(jù)項地址,M_first和M_last分別存放該deque塊的首尾元素的地址(M_last實際存放的是deque塊的末尾字節(jié)的地址),M_cur則存放當前訪問的deque雙端隊列的元素地址。

二、應用

deque的創(chuàng)建#include<deque>deque<int> a;//創(chuàng)建一個沒有任何元素的deque對象deque<int> a(10)//創(chuàng)建一個具有10個元素的deque對象,默認值為0deque<char> d1(5,'k')deque<char>d2(d1)//拷貝構(gòu)造函數(shù)deque的初始化利用push_back,可在尾部插入數(shù)據(jù)deque的訪問可以利用數(shù)組以及迭代器進行訪問:a[i]  (0<=i<a.size())或者利用迭代器for(iElementLocater=a.begin();iElementLocater!=a.end();++iElementLocater){cout<<*iElementLocater;}

4、插入

1)deque 具有高效的頭部插入元素的函數(shù)push_front()。

void push_front(const T&)

2)將在pos位置之前,插入新元素x。

iterator insert(iterator pos, const T& x)

5、刪除

(1)void pop_front()    

刪除deque的第一個元素。

(2)void pop_back()

刪除deque的最后一個元素。         //聲明一點是vector 沒有pop_back();

(3)iterator erase(iterator pos)

刪除pos所指向的元素。

(4)iterator erase(iterator first, iterator last)

刪除迭代器區(qū)間[first,last)所指向的所有元素。

(5)void clear()

刪除所有元素。

6、交換

void swap(deque&)

如d1.swap(d2);

7、其它

(1)bool empty()

判斷deque容器是否已有元素,是則返回true,否則返回false。

(2)size_type size()

當前deque容器的元素個數(shù)。

(3)size_type max_size()

系統(tǒng)所支持的deque容器的最大元素個數(shù)。

(4)reference front()

deque容器的首元素(引用返回),要求deque不為空。

(5)reference back()

deque容器的末元素(引用返回),要求deque不為空。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 从江县| 石楼县| 安乡县| 广河县| 安国市| 通化市| 东丽区| 乳源| 巫溪县| 嘉善县| 平泉县| 泾川县| 五莲县| 北辰区| 镶黄旗| 和政县| 澄城县| 奈曼旗| 宁夏| 滕州市| 曲阜市| 若尔盖县| 盐山县| 阳春市| 克拉玛依市| 会泽县| 图们市| 济南市| 军事| 松阳县| 莱西市| 台山市| 宝应县| 同江市| 成安县| 平阳县| 梨树县| 宜君县| 三门县| 闵行区| 宁城县|