Standard Template Library: deque Initialization and Assignment

What is it?

deque (pronounced as "deck") stands for double-ended queue. It is a sequence container that is similar to a vector in terms of its functionality, but with an additional ability to efficiently add or remove elements from its beginning or end.


Syntax

std::deque<data_type> deque_name;

How to use it

To use deque, you need to include the <deque> header file in your C++ program. Here are some of the common operations that can be performed on a deque:


Initialization: A deque can be initialized in the following ways:

// Create an empty deque of integers
std::deque<int> myDeque;

// Create a deque of integers with 10 elements, initialized to 0
std::deque<int> myDeque(10);

// Create a deque of integers with 10 elements, initialized to 5
std::deque<int> myDeque(10, 5);

// Create a deque of integers with elements from an array
int myArray[] = {1, 2, 3, 4, 5};
std::deque<int> myDeque(myArray, myArray + 5);



Program code snippet example

Here is an example program that demonstrates some of the deque operations:

#include <iostream>
#include <deque>

int main()
{
   // Create a deque of integers with 10 elements, initialized to 0
   std::deque<int> myDeque(10);
   
   // Add an element to the back of the deque
   myDeque.push_back(6);
   
   // Add an element to the front of the deque
   myDeque.push_front(0);
   
   // Remove an element from the back of the deque
   myDeque.pop_back();
   
   // Remove an element from the front of the deque
   myDeque.pop_front();
   
   // Access the element at index 2
   int x = myDeque.at(2);
   
   // Access the first element
   int y = myDeque.front();
   
   // Access the last element
   int z = myDeque.back();
   
   // Iterate over the elements of the deque
   for (std::deque<int>::iterator it = myDeque.begin(); it != myDeque.end(); ++it)
   {
      std::cout << *it << " ";
   }
   std::cout << std::endl;
   
   return 0;
}

Output:

0 0 0 0 0 0 0 0 0 6




Create two deques named dq1 and dq2. dq1 should be initialized with 4 elements of value 10. dq2 should be initialized with 53 5 3 54 55.