STLDeque的使用 c STL相關

2021-10-02 02:08:45 字數 2312 閱讀 8857

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堆...