【C++】 C++标准模板库(十) 双向队列
1. C++ Double Ended Queues(雙向隊(duì)列)
雙向隊(duì)列和向量很相似,但是它允許在容器頭部快速插入和刪除(就像在尾部一樣)。
| Constructors | 創(chuàng)建一個新雙向隊(duì)列 |
| Operators | 比較和賦值雙向隊(duì)列 |
| assign() | 設(shè)置雙向隊(duì)列的值 |
| at() | 返回指定的元素 |
| back() | 返回最后一個元素 |
| begin() | 返回指向第一個元素的迭代器 |
| clear() | 刪除所有元素 |
| empty() | 返回真如果雙向隊(duì)列為空 |
| end() | 返回指向尾部的迭代器 |
| erase() | 刪除一個元素 |
| front() | 返回第一個元素 |
| get_allocator() | 返回雙向隊(duì)列的配置器 |
| insert() | 插入一個元素到雙向隊(duì)列中 |
| max_size() | 返回雙向隊(duì)列能容納的最大元素個數(shù) |
| pop_back() | 刪除尾部的元素 |
| pop_front() | 刪除頭部的元素 |
| push_back() | 在尾部加入一個元素 |
| push_front() | 在頭部加入一個元素 |
| rbegin() | 返回指向尾部的逆向迭代器 |
| rend() | 返回指向頭部的逆向迭代器 |
| resize() | 改變雙向隊(duì)列的大小 |
| size() | 返回雙向隊(duì)列中元素的個數(shù) |
| swap() | 和另一個雙向隊(duì)列交換元素 |
2. C++ Double-Ended Queues(雙向隊(duì)列)
Constructors
語法:| deque();deque( size_type size );deque( size_type num, const TYPE &val );deque( const deque &from );deque( input_iterator start, input_iterator end ); |
C++ Deques能用以下方式創(chuàng)建:
- 無參,創(chuàng)建一個空雙向隊(duì)列
- size - 創(chuàng)建一個大小為size的雙向隊(duì)列
- num and val - 放置num個val的拷貝到隊(duì)列中,
- from - 從from創(chuàng)建一個內(nèi)容一樣的雙向隊(duì)列
- start 和 end - 創(chuàng)建一個隊(duì)列,保存從start到end的元素。
例如,下列代碼創(chuàng)建并顯示一個雙向隊(duì)列:
// 創(chuàng)建一個雙向隊(duì)列,里面有10個1dequedq( 10, 1 );// 創(chuàng)建一個迭代器deque::iterator iter;// 顯示這個雙向隊(duì)列for( iter = dq.begin(); iter != dq.end(); iter++ ){ cout << *iter << endl;}Operators
語法:| [] |
你可以使用[]操作符訪問雙向隊(duì)列中單個的元素。
assign
語法:| void assign( input_iterator start, input_iterator end);void assign( Size num, const TYPE &val ); |
assign()函數(shù)用start和end指示的范圍為雙向隊(duì)列賦值,或者設(shè)置成num個val。
at
語法:| reference at( size_type pos ); |
at()函數(shù)返回一個引用,指向雙向隊(duì)列中位置pos上的元素。
back
語法:| reference back(); |
back()返回一個引用,指向雙向隊(duì)列中最后一個元素。
begin
語法:| iterator begin(); |
begin()函數(shù)返回一個迭代器,指向雙向隊(duì)列的第一個元素。
clear
語法:| void clear(); |
clear()函數(shù)刪除雙向隊(duì)列中所有元素。
empty
語法:| bool empty(); |
empty()返回真如果雙向隊(duì)列為空,否則返回假。
end
語法:| iterator end(); |
end()函數(shù)返回一個迭代器,指向雙向隊(duì)列的尾部。
erase
語法:| iterator erase( iterator pos );iterator erase( iterator start, iterator end ); |
erase()函數(shù)刪除pos位置上的元素,或者刪除start和end之間的所有元素。返回值是一個iterator,指向被刪除元素的后一個元素。
front
語法:| reference front(); |
front()函數(shù)返回一個引用,指向雙向隊(duì)列的頭部。
get_allocator
語法:| allocator_type get_allocator(); |
get_allocator()函數(shù)返回雙向隊(duì)列的配置器。
insert
語法:| iterator insert( iterator pos, size_type num, const TYPE &val );void insert( iterator pos, input_iterator start, input_iterator end ); |
insert()在pos前插入num個val值,或者插入從start到end范圍內(nèi)的元素到pos前面。
max_size
語法:| size_type max_size(); |
max_size()返回雙向隊(duì)列能容納的最大元素個數(shù)。
pop_back
語法:| void pop_back(); |
pop_back()刪除雙向隊(duì)列尾部的元素。
pop_front
語法:| void pop_front(); |
pop_front()刪除雙向隊(duì)列頭部的元素。
push_back
語法:| void push_back( const TYPE &val ); |
push_back()函數(shù)在雙向隊(duì)列的尾部加入一個值為val的元素。
push_front
語法:| void push_front( const TYPE &val ); |
push_front()函數(shù)在雙向隊(duì)列的頭部加入一個值為val的元素。
rbegin
語法:| reverse_iterator rbegin(); |
rbegin()返回一個指向雙向隊(duì)列尾部的逆向迭代器。
rend
語法:| reverse_iterator rend(); |
rend()返回一個指向雙向隊(duì)列頭部的逆向迭代器。
resize
語法:| void resize( size_type num, TYPE val ); |
resize()改變雙向隊(duì)列的大小為num,另加入的元素都被填充為val。
size
語法:| size_type size(); |
size()函數(shù)返回雙向隊(duì)列中的元素個數(shù)。
swap
語法:| void swap( deque &target ); |
swap()函數(shù)交換target和現(xiàn)雙向隊(duì)列中元素。
總結(jié)
以上是生活随笔為你收集整理的【C++】 C++标准模板库(十) 双向队列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C++】 C++标准模板库(九) Bi
- 下一篇: s3c2440移植MQTT