The vector::emplace() is an STL in C++ which extends container by inserting new element at position. Reallocation happens only if there is a need of more space. Here the container size increases by one.
Syntax:
template iterator vector_name.emplace (const_iterator position, element);
Parameter:
The function accepts two mandatory parameters which are specified as below:
- position – It specifies the iterator pointing to the position in the container where the new element is to be inserted.
- args – It specifies the element to be inserted to be inserted in the vector container.
Return value: The function returns an iterator which points to the newly inserted element.
Below programs illustrates the above function:
Program 1:
// C++ program to illustrate the // vector::emplace() function // insertion at thefront #include <bits/stdc++.h> using namespace std; int main() { vector< int > vec = { 10, 20, 30 }; // insert element by emplace function // at front auto it = vec.emplace(vec.begin(), 15); // print the elements of the vector cout << "The vector elements are: " ; for ( auto it = vec.begin(); it != vec.end(); ++it) cout << *it << " " ; return 0; } |
The vector elements are: 15 10 20 30
Program 2:
// C++ program to illustrate the // vector::emplace() function // insertion at the end #include <bits/stdc++.h> using namespace std; int main() { vector< int > vec = { 10, 20, 30 }; // insert element by emplace function // at the end auto it = vec.emplace(vec.end(), 16); // print the elements of the vector cout << "The vector elements are: " ; for ( auto it = vec.begin(); it != vec.end(); ++it) cout << *it << " " ; return 0; } |
The vector elements are: 10 20 30 16
Program 3:
// C++ program to illustrate the // vector::emplace() function // insertion at the middle #include <bits/stdc++.h> using namespace std; int main() { vector< int > vec = { 10, 20, 30 }; // insert element by emplace function // in the middle auto it = vec.emplace(vec.begin() + 2, 16); // print the elements of the vector cout << "The vector elements are: " ; for ( auto it = vec.begin(); it != vec.end(); ++it) cout << *it << " " ; return 0; } |
The vector elements are: 10 20 16 30
Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.