Skip to content
Related Articles

Related Articles

Improve Article

deque emplace in C++ STL

  • Last Updated : 24 Jun, 2021

Deque or Double-ended queues are sequence containers with the feature of expansion and contraction on both the ends. They are similar to vectors, but are more efficient in case of insertion and deletion of elements at the end, and also the beginning. Unlike vectors, contiguous storage allocation may not be guaranteed.
emplace() function inserts a new element just before the specified position and the size of the container is increased by one.
Syntax : 
 

iterator emplace(const_iterator position, value_type val);

Parameters: This method accepts following parameters: 
 

  • position: It defines the position before which the new element is to be inserted.
  • val: New value which is to be inserted.

Return value : It returns an iterator to the newly constructed element.
Below examples illustrate this method:
Example-1: 
 

CPP




#include <deque>
#include <iostream>
using namespace std;
 
int main()
{
 
    // initialization of deque named sample
    deque<int> sample = { 2, 3, 4, 5 };
 
    // initializing an iterator
    deque<int>::iterator itr;
 
    // adding 1 at the first position in
    // the sample as itr points to
    // first position in the sample
    sample.emplace(sample.begin(), 1);
 
    // Looping the whole
    for (itr = sample.begin(); itr != sample.end(); ++itr)
        // sample for printing
        cout << *itr << " ";
 
    cout << endl;
    return 0;
}
Output: 
1 2 3 4 5

 

Example-2: 
 

CPP




#include <deque>
#include <iostream>
using namespace std;
int main()
{
 
    // initialization of deque named sample
    deque<char> sample = { 'G', 'E', 'K', 'S' };
 
    // initialising an iterator
    deque<char>::iterator itr = sample.begin();
 
    // incrementing the iterator by one place
    ++itr;
 
    // adding E at the second position in
    // the sample as itr points to
    // second position in the sample
    sample.emplace(itr, 'E');
 
    // Looping the whole
    for (itr = sample.begin(); itr != sample.end(); ++itr)
 
        // sample for printing
        cout << *itr;
 
    cout << endl;
    return 0;
}
Output: 
GEEKS

 

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.



My Personal Notes arrow_drop_up
Recommended Articles
Page :