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 
deque.htm
Advertisements