
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
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