
- 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::emplace_front() Function
The C++ std::deque::emplace_front() function is used to insert an element at the beginning of the deque. Unlike push_front(), which inserts a copy of an element, emplace_front() constructs the element directly in the deque, avoiding unnecessary copy or move.
Syntax
Following is the syntax for std::deque::emplace_front() function.
void emplace_front (Args&&... args);
Parameters
- args − It indicates the arguments forwarded to construct the new element.
Return value
This function does not return anything.
Exceptions
If reallocation fails bad_alloc exception is thrown.
Time complexity
The time complexity of this function is Linear i.e. O(n)
Example
In the following example, we are going to consider the basic usage of the emplace_front() function.
#include <iostream> #include <deque> int main() { std::deque<int> a = {22,333,4444}; a.emplace_front(1); for (auto num : a) { std::cout << num << " "; } std::cout << std::endl; return 0; }
Output
Output of the above code is as follows −
1 22 333 4444
Example
Consider the another scenario, where we are going to insert the char element at the front of the deque.
#include <iostream> #include <deque> int main() { std::deque<char> a = {'B', 'C', 'D'}; a.emplace_front('A'); for (auto num : a) { std::cout << num << " "; } std::cout << std::endl; return 0; }
Output
If we run the above code it will generate the following output −
A B C D
Example
In the following example, we are going to insert the element using move semantics.
#include <iostream> #include <deque> #include <string> int main() { std::deque<std::string> a = {"TP"}; std::string b = "TutorialsPoint, "; a.emplace_front(std::move(b)); for (const auto& word : a) { std::cout << word << " "; } std::cout << std::endl; return 0; }
Output
Following is the output of the above code −
TutorialsPoint, TP