deque是雙端陣列。
deque和vector的區別:
deque內部工作原理:
deque內部有個中控器,維護每段緩衝區中的內容,緩衝區中存放著真實資料。中控器維護的是每個緩衝區的位址,使得使用每個deque時像一塊連續的記憶體空間。
deque容器的迭代器是支援隨機訪問的。
一、deque建構函式
dequedeqtdeque(beg,end)
deque(n,elem)
deque(
const deque &deq)
#include#includeusing
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#includeusing
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 ...