1、deque與vector相比又多了可以在頭部新增刪除元素
2、deque是一塊塊記憶體分配的,由於需要在頭部生成元素,所以訪問比vector慢
1、接收網路包可以用vector存,因為空間最緊湊。
2、傳送給客戶端或需要資料做處理的時候包用deque來傳送來保證順序
static
void
dequepart()
// 特點隨機訪問元素,末端和頭部新增刪除元素效率高。中間刪除和新增元素效率低,
// 元素的訪問和迭代比vector要慢,迭代器不能是普通的指標
using group = std::deque<
float
>
; group a;
group b = a;
group c
(a);
group d(10
);group e(10
,1.0f);
group f
(e.begin()
, e.
end())
; group g()
; group h =;
d.empty()
; d.
size()
; d.
max_size()
;// 和vector不同,deque不提供以下的函式
d.shrink_to_fit()
;// operator == != < > <= >=
// 賦值
b = g;
b.assign(3
,1.0f);
b.assign
(g.begin()
, g.
end())
; b.
assign()
;// 交換
b.swap
(a);
std::
swap
(a,b)
;// 元素訪問
b[0];
b.at(0
);b.front()
; b.
back()
;// 迭代器相關
a.begin()
; a.
end();
a.cbegin()
; a.
cend()
; a.
rbegin()
; a.
rend()
; a.
crbegin()
; a.
crend()
; a.
pop_back()
;// maybe wrongif(
!a.empty()
) a.
pop_back()
; b.
erase
(b.begin()
);b.erase
(b.begin()
, b.
end())
; b.
push_back
(10.0f);
b.pop_back()
; b.
push_front
(1.2f);
b.emplace_front
(1.3f);
auto iter = b.
insert
(b.end()
,100.0f);
iter = b.
insert
(b.end()
,10,-
10.0f);
b.insert
(b.end()
, h.
begin()
, h.
end())
; b.
emplace
(b.end()
,10.0f);
b.emplace_back
(10.0f);
b.resize(10
);b.resize
(100
,1.0f);
b.clear()
;// notice
b.shink_to_fit()
;// 異常
// (1) push_back push_front
// (2) 元素 move/copy 沒有異常的話, insert emplace emplace_back push_back
// (3) pop_back
// (4) 元素 move/copy 沒有異常的話,erase
// (5) swap clear
}
STL deque的基本用法
好多用法和vector類似,所以不詳細測試,學習呼叫即可 include includeusing namespace std deque容器 引入標頭檔案 列印模組 void printdeque const deque d cout endl deque建構函式 dequedeqt 預設構造形式...
C STL使用入門
stl standard template library,標準模板庫 我最開始接觸c 程式設計是從dos下的borland c 開始的。那時他們在最新版本3.1中就包含了一套模板庫用來做collection.那真是個好東東。當我開始使用visual c 2.2的時候,我甚至試圖去把borland公...
C STL使用總結
vector動態陣列 back 返回陣列最後乙個元素。宣告 vector res m,vector n,0 上面的一行宣告了乙個二維陣列m行n列的二維陣列,並且初始化為0 有乙個交換的函式reserve res.begin res.end 將res行交換 第一行變最後 第二行變倒數第二 stack堆...