c STL容器之deque容器

2022-06-11 18:06:12 字數 2237 閱讀 4167

deque是雙端陣列

deque和vector的區別

deque內部工作原理

deque內部有個中控器,維護每段緩衝區中的內容,緩衝區中存放著真實資料。中控器維護的是每個緩衝區的位址,使得使用每個deque時像一塊連續的記憶體空間。

deque容器的迭代器是支援隨機訪問的。

一、deque建構函式

dequedeqt

deque(beg,end)

deque(n,elem)

deque(

const deque &deq)

#include#include

using

namespace

std;

//加入const限制唯讀,並使用const_iterator

void printdeque(const deque&d)

cout

<}void

test()

printdeque(d1);

deque

d2(d1.begin(),d1.end());

deque

d3(4,3

); deque

d4(d1);

}int

main()

二、賦值操作(基本上與vector一致)

#include#include

using

namespace

std;

//加入const限制唯讀,並使用const_iterator

void printdeque(const deque&d)

cout

<}void

test()

deque

d2;d2 =d1;

deque

d3;d3.assign(d1.begin(),d1.end());

deque

d4;d4.assign(

4, 3);}

intmain()

三、deque大小操作(與vector也基本一致,但是deque中沒有容量capaticy限制)

四、deque插入和刪除

//

兩端插入

push_back(ele);

push_front(ele);

pop_back();

pop_front();

//指定位置插入、刪除,pos,beg,end都是迭代器

insert(pos,ele);

insert(pos,n,ele);

insert(pos,beg,end);

clear();

erase(beg,end);

erase(pos);

五、deque資料訪問(與vector一致,多了取頭部的操作)

deque d1 =;

訪問第乙個元素:

d1[0

];d1.at(0);

修改第乙個元素:

d1[0] = 2

;d1.at(

0) = 2

;訪問首元素:

d1.front();

訪問尾元素:

d1.back();

六、deque排序(利用algorithm中的sort,預設公升序排序)

#include#include

#include

using

namespace

std;

//加入const限制唯讀,並使用const_iterator

void printdeque(const deque&d)

cout

<}void

test()

cout

<< "

排序前:

"

sort(d1.begin(), d1.end());

cout

<< "

排序後:

"

}int

main()

c STL容器之map容器

1.map中所有的元素都是pair 2.pair元素中第乙個元素為key,第二個元素為value 3.所有元素都會根據鍵值自動排序 4.map中不允許有重複的鍵,multimap中允許有重複的鍵 優點 可以根據key快速的找到value 一 建構函式 mapmp map const map mp 二...

STL通用容器之 deque 容器

1.5deque容器 deque容器為乙個給定型別的元素進行線性處理,就如向量,它能夠快速地隨機進入任乙個元素,並且能夠高效地 入和刪除容器的尾部元素。但它與vector不同,deque能支援高效插入和刪除容器的頭部元素,也叫做雙端佇列.1 建構函式 deque 建立乙個空deque deque i...

c STL通用容器 之 bitset容器

bitset 可以看作是二進位制位的容器,並提供了位的相關操作函式。常用函式 1 構造 賦值函式 bitset bitset const bitset 拷貝建構函式 bitset unsignedlong val 由無符號長整形數構建位容器 bitset const string str,size ...