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#includeusing
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#includeusing
namespace
std;
intmain()
*刪除元素
可以從雙端佇列的手部,尾部,中部刪除元素,並可以清空雙端佇列容器
#include#includeusing
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...