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

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
主站蜘蛛池模板: 阿拉善右旗| 石城县| 定南县| 海原县| 金平| 南涧| 台南县| 车致| 家居| 广州市| 滨州市| 翁牛特旗| 行唐县| 冕宁县| 甘孜县| 吉安市| 乡宁县| 边坝县| 彭泽县| 葵青区| 南昌市| 江川县| 正宁县| 宜春市| 峡江县| 梁山县| 长沙县| 宜兰市| 罗甸县| 隆子县| 泾川县| 高清| 永德县| 蒲城县| 彝良县| 无棣县| 岢岚县| 宣武区| 通道| 临汾市| 丹棱县|