官术网_书友最值得收藏!

Deque

The deque container is a double-ended queue and the data structure used could be a dynamic array or a vector. In a deque, it is possible to insert an element both at the front and back, with a constant time complexity of O(1), unlike vectors, in which the time complexity of inserting an element at the back is O(1) while that for inserting an element at the front is O(N). The deque doesn't suffer from the problem of reallocation, which is suffered by a vector. However, all the benefits of a vector are there with deque, except that deque is slightly better in terms of performance as compared to a vector as there are several rows of dynamic arrays or vectors in each row.

The following diagram shows the internal data structure used in a deque container:

Let's write a simple program to try out the deque container:

#include <iostream>
#include <deque>
#include <algorithm>
#include <iterator>
using namespace std;

int main () {
deque<int> d = { 10, 20, 30, 40, 50 };

cout << "\nInitial size of deque is " << d.size() << endl;

d.push_back( 60 );
d.push_front( 5 );

cout << "\nSize of deque after push back and front is " << d.size() << endl;

copy ( d.begin(), d.end(), ostream_iterator<int>( cout, "\t" ) );
d.clear();

cout << "\nSize of deque after clearing all values is " << d.size() <<
endl;

cout << "\nIs the deque empty after clearing values ? " << ( d.empty()
? "true" : "false" ) << endl;

return 0;
}

The output can be viewed with the following command:

./a.out

The output of the program is as follows:

Intitial size of deque is 5

Size of deque after push back and front is 7

Print the deque ...
5 10 20 30 40 50 60
Size of deque after clearing all values is 0

Is the deque empty after clearing values ? true
主站蜘蛛池模板: 安龙县| 昭觉县| 广元市| 屏边| 麦盖提县| 成安县| 平度市| 泰顺县| 承德县| 北碚区| 康平县| 玉屏| 蛟河市| 申扎县| 松江区| 开江县| 五寨县| 新乡市| 石柱| 漳平市| 拉孜县| 安宁市| 北宁市| 宁海县| 黑龙江省| 佛学| 肇源县| 镇平县| 高安市| 从化市| 丰都县| 朝阳区| 尚义县| 乡宁县| 衡阳县| 周宁县| 静宁县| 华阴市| 田林县| 河南省| 江源县|