
C++ Deque
The C++ has deque (pronounced “deck”) stands for “double-ended queue.” It is a data structure that supports insertion and deletion of elements from both ends efficiently. The std::deque is provided by the C++ Standard Library and is part of the C++ Standard Template Library (STL).
Here’s how you can work with a deque in C++:
Including the Required Header:
You need to include the <deque> header to use the std::deque container.
#include <iostream>
#include <deque>Declaring a deque:
You can declare a deque like this:
std::deque<int> myDeque;This declares a deque named myDeque that can store integers.
Adding Elements:
You can add elements to the front or back of the deque using push_front and push_back functions, respectively:
myDeque.push_back(42); // Adds 42 to the back of the deque
myDeque.push_front(17); // Adds 17 to the front of the dequeRemoving Elements:
You can remove elements from the front or back of the deque using pop_front and pop_back functions:
myDeque.pop_back(); // Removes the last element
myDeque.pop_front(); // Removes the first elementAccessing Elements:
You can access elements in a deque by index, just like an array:
int value = myDeque[2]; // Accesses the element at index 2Checking Size:
You can check the size of the deque using the size() function:
int size = myDeque.size();Iterating Over a deque:
You can iterate through the elements of a deque using iterators or range-based for loops:
for (auto it = myDeque.begin(); it != myDeque.end(); ++it) {
std::cout << *it << " ";
}
// or using a range-based for loop
for (const int& element : myDeque) {
std::cout << element << " ";
}std::deque provides efficient insertion and deletion at both ends compared to std::vector, which provides efficient operations at the back but not at the front. Therefore, if you need a container that supports these operations efficiently, std::deque is a good choice.