1. C++ Double Ended Queues(雙向隊列)
雙向隊列和向量很相似,但是它允許在容器頭部快速插入和删除(就像在尾部一樣)。
Constructors | 建立一個新雙向隊列 |
Operators | 比較和指派雙向隊列 |
assign() | 設定雙向隊列的值 |
at() | 傳回指定的元素 |
back() | 傳回最後一個元素 |
begin() | 傳回指向第一個元素的疊代器 |
clear() | 删除所有元素 |
empty() | 傳回真如果雙向隊列為空 |
end() | 傳回指向尾部的疊代器 |
erase() | 删除一個元素 |
front() | 傳回第一個元素 |
get_allocator() | 傳回雙向隊列的配置器 |
insert() | 插入一個元素到雙向隊列中 |
max_size() | 傳回雙向隊列能容納的最大元素個數 |
pop_back() | 删除尾部的元素 |
pop_front() | 删除頭部的元素 |
push_back() | 在尾部加入一個元素 |
push_front() | 在頭部加入一個元素 |
rbegin() | 傳回指向尾部的逆向疊代器 |
rend() | 傳回指向頭部的逆向疊代器 |
resize() | 改變雙向隊列的大小 |
size() | 傳回雙向隊列中元素的個數 |
swap() | 和另一個雙向隊列交換元素 |
2. C++ Double-Ended Queues(雙向隊列)
Constructors
文法:
|
C++ Deques能用以下方式建立:
-
- 無參,建立一個空雙向隊列
- size - 建立一個大小為size的雙向隊列
- num and val - 放置num個val的拷貝到隊列中,
- from - 從from建立一個内容一樣的雙向隊列
- start 和 end - 建立一個隊列,儲存從start到end的元素。
例如,下列代碼建立并顯示一個雙向隊列:
// 建立一個雙向隊列,裡面有10個1
deque
dq( 10, 1 );
// 建立一個疊代器
deque
::iterator iter;
// 顯示這個雙向隊列
for( iter = dq.begin(); iter != dq.end(); iter++ ){
cout << *iter << endl;
}
Operators
文法:
|
你可以使用[]操作符通路雙向隊列中單個的元素。
assign
文法:
|
assign()函數用start和end訓示的範圍為雙向隊列指派,或者設定成num個val。
at
文法:
|
at()函數傳回一個引用,指向雙向隊列中位置pos上的元素。
back
文法:
|
back()傳回一個引用,指向雙向隊列中最後一個元素。
begin
文法:
|
begin()函數傳回一個疊代器,指向雙向隊列的第一個元素。
clear
文法:
|
clear()函數删除雙向隊列中所有元素。
empty
文法:
|
empty()傳回真如果雙向隊列為空,否則傳回假。
end
文法:
|
end()函數傳回一個疊代器,指向雙向隊列的尾部。
erase
文法:
|
erase()函數删除pos位置上的元素,或者删除start和end之間的所有元素。傳回值是一個iterator,指向被删除元素的後一個元素。
front
文法:
|
front()函數傳回一個引用,指向雙向隊列的頭部。
get_allocator
文法:
|
get_allocator()函數傳回雙向隊列的配置器。
insert
文法:
|
insert()在pos前插入num個val值,或者插入從start到end範圍内的元素到pos前面。
max_size
文法:
|
max_size()傳回雙向隊列能容納的最大元素個數。
pop_back
文法:
|
pop_back()删除雙向隊列尾部的元素。
pop_front
文法:
|
pop_front()删除雙向隊列頭部的元素。
push_back
文法:
|
push_back()函數在雙向隊列的尾部加入一個值為val的元素。
push_front
文法:
|
push_front()函數在雙向隊列的頭部加入一個值為val的元素。
rbegin
文法:
|
rbegin()傳回一個指向雙向隊列尾部的逆向疊代器。
rend
文法:
|
rend()傳回一個指向雙向隊列頭部的逆向疊代器。
resize
文法:
|
resize()改變雙向隊列的大小為num,另加入的元素都被填充為val。
size
文法:
|
size()函數傳回雙向隊列中的元素個數。
swap
|