Skip to content
Related Articles

Related Articles

std::try_emplace() in Maps and Unordered Maps of C++17
  • Difficulty Level : Medium
  • Last Updated : 08 Jul, 2020

In this article, we are going to learn try_emplace method in Maps and Unordered Maps. This method was added in C++17 (i.e gcc 9.1) version. This new function proposed behaves similarly to emplace(), but has an advantage that is, it will not construct the object associated with the key, if the key already exists. This will boost the performance in case objects of that type are expensive to create.

Header File:

#include <utility>

Syntax:

map_name.try_emplace(key, element);

Parameters: The function accepts two mandatory parameters which are described below:

  • key: It specifies the key to be inserted in the multimap container.
  • element: It specifies the element to the key which is to be inserted in the map container.

Return Value: The function does not return anything.



Below is the program to illustrate try_emplace() in C++:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for the illustration of
// map::try_emplace() function in map
#include <bits/stdc++.h>
using namespace std;
  
// Driver Code
int main()
{
    // Initializing a container
    map<string, string> m;
  
    // Inserting elements in random order
    m.try_emplace("a", "123");
    m.try_emplace("b", "456");
    m.try_emplace("a", "Won't be inserted");
    m.try_emplace("c", "789");
    m.try_emplace("c", "Won't be inserted");
  
    // Print the elements
    cout << "\nThe map is : \n";
    cout << "KEY\tELEMENT\n";
  
    for (auto p : m) {
        cout << p.first << "\t"
             << p.second
             << endl;
    }
    return 0;
}

chevron_right


Output:

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :