C++ Deque::pop_front() Function



The C++ std::deque::pop_front() function is used to remove the first element from the deque, reducing its size by one. It does not return the removed element. After calling this function, all the remaining elements are shifted one position towards the front.

When we try to invoke the pop_front() function on empty deque, it results in undefined behaviour.

Syntax

Following is the syntax for std::deque::pop_front() function.

void pop_front();

Parameters

It does not accept any parameter.

Return value

This function does not return anything.

Exceptions

Calling this function on empty deque causes undefined behavior.

Time complexity

The time complexity of this function is constant i.e. O(1)

Example

In the following example, we are going to consider the basic usage of the pop_front() function.

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> A = {'A', 'B', 'C', 'D'};
    A.pop_front();
    std::cout << "After pop_front(): ";
    for (char n : A) std::cout << n << " ";
    std::cout << std::endl;
    return 0;
}

Output

Output of the above code is as follows −

After pop_front(): B C D 

Example

Consider the following example, where we are going to handle the empty deque.

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a;
    if (!a.empty()) {
        a.pop_front();
    } else {
        std::cout << "Deque is empty, cannot perform pop_front()." << std::endl;
    }
    return 0;
}

Output

Following is the output of the above code −

Deque is empty, cannot perform pop_front().

Example

In the following example, we are going to perform the conditional removal of the elements.

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a = {01,12,23,34,45};
    while (!a.empty() && a.front() < 23) {
        a.pop_front();
    }
    for (int n : a) {
        std::cout << n << ' ';
    }
    return 0;
}

Output

If we run the above code it will generate the following output −

23 34 45 
deque.htm