
- 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() Function
The C++ std::deque::emplace() function is used to construct an element in the soecified position. Unlike push_back() which requires an existing object, emplace() takes arguments for the element construction, helping in avoiding unnecessary copies or moves.
For example, let's consider a.emplace(a.begin(), args..) inserts an element at the beginning of the deque, while a.emplace_back(args..) inserts it at the end.
Syntax
Following is the syntax for std::deque::emplace() function.
iterator emplace (const_iterator position, Args&&... args);
Parameters
- position − It indicates the position in the container where the new element is inserted.
- args − It indicates the arguments forwarded to construct the new element.
Return value
It returns an iterator which points to the newly emplaced element.
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 insert the element at the beginning of the deque.
#include <iostream> #include <deque> int main() { std::deque<char> a; a.emplace_front('C'); a.emplace_front('B'); a.emplace_front('A'); for (const auto& elem : a) { std::cout << elem << " "; } return 0; }
Output
Output of the above code is as follows −
A B C
Example
Consider the another scenario, where we are going to insert the element in the middle.
#include <iostream> #include <deque> int main() { std::deque<int> a = {1,333,4444}; a.emplace(a.begin() + 1, 22); for (const auto& elem : a) { std::cout << elem << " "; } return 0; }
Output
Following is the output of the above code −
1 22 333 4444