C++ vector::emplace_back() Function



The C++ vector::emplace_back() function extends the vector by adding a new element. Reallocation occurs if additional space is required. Similar to dynamic arrays, vectors can automatically resize when an item is added or removed.The time complexity of the emplace_back() function is constant.

The container manages the vector storage. Moreover, one can add an element to the end of a vector by using the emplace_back() function. It doesn't produce a temporary object. The object is directly created in the vector. As a result, efficiency is increased. The complexity of the emplace_back() function is constant.

Syntax

Following is the syntax for C++ vector::emplace_back() Function −

void emplace_back (Args&&... args);

Parameters

args − It indicates the argumrnt that is forwarded to construct the new element.

Example 1

Let's consider the following example, where we are going to use integer vector used with the emplace_back() function.

#include <iostream>
#include <vector>
using namespace std;

int main(){
   vector<int>myvector;
   myvector.emplace_back(11);
   myvector.emplace_back(22);
   myvector.emplace_back(33);
   for (auto x = myvector.begin(); x != myvector.end(); ++x)
      cout<< ' ' << *x;
   return 0;
}

Output

When we compile and run the above program, this will produce the following result −

11 22 33

Example 2

Considering the another scenario, where we are going to take the string vector and use it with emplace_back() function.

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main(){
   vector<string>myvector;
   myvector.emplace_back("Welcome");
   myvector.emplace_back("To");
   myvector.emplace_back("The World.!");
   for(auto x =myvector.begin(); x != myvector.end(); ++x)
      cout<< ' ' << *x;
   return 0;
}

Output

On running the above program, it will produce the following result −

Welcome To The World.!

Example 3

In the following example, we are going to use the character vector with the emplace_back() function.

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main(){
   vector<char>myvector;
   myvector.emplace_back('T');
   myvector.emplace_back('P');;
   for(auto x =myvector.begin(); x != myvector.end(); ++x)
      cout<< ' ' << *x;
   return 0;
}

Output

On running the above program, it will produce the following result −

T P
Advertisements