c STL之雙端佇列容器

2022-05-25 03:21:10 字數 1582 閱讀 6949

deque雙端佇列容器與vector很類似,採用線性表順序儲存結構。但與vector區別,deque採用分塊的線性儲存結構來儲存資料,每塊的大小一般為512b,將之稱為deque塊,所有的deque塊使用乙個map塊進行管理,每個map資料項記錄各個deque塊的首位址,這樣的話,deque塊在頭部和尾部都可以插入和刪除。而不需要移動任何元素,而不需要移動其他元素(使用push_back()方法在尾部插入元素,會擴張佇列,而使用push_front()方法在首部插入元素和使用insert()方法在中間插入元素,只是將原位置上的元素進行覆蓋,不會增加新元素)一般來說,當考慮到容器元素的記憶體分配策略和操作的效能時deque相當於vector更有優勢。

*建立deque物件 

與vector類似

詳細用法(部分):

dequek;      ------      定義乙個deque的變數(定義時已經初始化)      例如: dequek;

k.empty()      ------      檢視是否為空範例,是的話返回1,不是返回0

k.clear()      ------      清除佇列裡的所有資料

k.push_front(i)      ------      從已有元素前面增加元素i(隊伍大小不預設)

k.push_back(i)      ------      從已有元素後面增加元素i(隊伍大小不預設)

k.pop_front()      ------      清除第乙個元素

k.pop_back()      ------      清除最後乙個元素

k.front()      ------      顯示第乙個元素      例如n = k.front();

k.back()      ------      顯示最後乙個元素

k.size()      ------      輸出現有元素的個數

#include#include

using

namespace

std;

int main(void);

deque

q;for(i=0;i<=9;i++)

/*此時佇列裡的內容是:

*/q.pop_front();

printf(

"%d\n

", q.front()); /*

清除第乙個元素後輸出第乙個(6)

*/q.pop_back();

printf(

"%d\n

", q.back()); /*

清除最後乙個元素後輸出最後乙個(7)

*/return0;

}

*遍歷

#include#include

using

namespace

std;

intmain()

*刪除元素 

可以從雙端佇列的手部,尾部,中部刪除元素,並可以清空雙端佇列容器

#include#include

using

namespace

std;

intmain()

C STL之雙端佇列容器

deque雙端佇列容器與vector很類似,採用線性表順序儲存結構。但與vector區別,deque採用分塊的線性儲存結構來儲存資料,每塊的大小一般為512b,將之稱為deque塊,所有的deque塊使用乙個map塊進行管理,每個map資料項記錄各個deque塊的首位址,這樣的話,deque塊在頭部...

C STL之雙端佇列容器

deque雙端佇列容器與vector很類似,採用線性表順序儲存結構。但與vector區別,deque採用分塊的線性儲存結構來儲存資料,每塊的大小一般為512b,將之稱為deque塊,所有的deque塊使用乙個map塊進行管理,每個map資料項記錄各個deque塊的首位址,這樣的話,deque塊在頭部...

C STl之雙端佇列

deque與vector非常相似,不僅可以在尾部插入和刪除元素,還可以在頭部插入和刪除。不過當考慮到容器元素的記憶體分配策略和操作效能時,deque相對vector較為有優勢。標頭檔案 include 1 deque 建立乙個沒有任何元素的deque物件。deque d 2 deque size t...