C++ Vector Library - emplace() Function


Advertisements

Description

The C++ function std::vector::emplace() extends container by inserting new element at position. Reallocation happens if there is need of more space.

This method increases container size by one.

Declaration

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

C++11

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

Parameters

  • position − Index in the container 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::vector::emplace() function.

#include <iostream>
#include <vector>

using namespace std;

int main(void) {
   vector<int> v = {1, 2, 5};

   /* insert element at index 3 */
   auto it = v.emplace(v.begin() + 2, 4);

   /* insert element at index 2 */
   v.emplace(it, 3);

   for (auto it = v.begin(); it != v.end(); ++it)
      cout << *it << endl;

   return 0;
}

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

1
2
3
4
5
vector.htm
Advertisements