C++ Deque Library - emplace() Function


Advertisements

Description

The C++ function std::deque::emplace() extends deque by inserting new element at position. If reallocation happens storage requirement for this container is fulfilled by internal allocator.

Declaration

Following is the declaration for std::deque::emplace() function form std::deque header.

C++11

template <class... Args>
iterator emplace (const_iterator position, Args&&... args);

Parameters

  • position − Index in the deque where the new element is to be inserted.

  • args − Arguments forwarded to construct the new element.

Return value

Returns a random access iterator which points to the newly emplaced element.

Exceptions

If reallocation fails bad_alloc exception is thrown.

Time complexity

Linear i.e. O(n)

Example

The following example shows the usage of std::deque::emplace() function.

#include <iostream>
#include <deque>

using namespace std;

int main(void) {

   deque<int> d = {1, 2, 5};

   auto it = d.emplace(d.begin() + 2, 3);

   d.emplace(it, 4);

   cout << "Contents of deque are" << endl;

   for (auto it = d.crend() - 1; it >= d.crbegin(); --it)
      cout << *it << endl;

   return 0;
}

Let us compile and run the above program, this will produce the following result −

Contents of deque are
1
2
4
3
5
deque.htm
Advertisements