std::try_emplace() en mapas y mapas desordenados de C++17

En este artículo, vamos a aprender el método try_emplace en Maps y Unordered Maps . Este método se agregó en la versión C++ 17 (es decir, gcc 9.1). Esta nueva función propuesta se comporta de manera similar a emplace() , pero tiene la ventaja de que no construirá el objeto asociado con la clave, si la clave ya existe. Esto aumentará el rendimiento en caso de que los objetos de ese tipo sean costosos de crear.

Archivo de cabecera:

#include <utility>

Sintaxis:

map_name.try_emplace(key, element);

Parámetros: La función acepta dos parámetros obligatorios que se describen a continuación:

  • key: Especifica la clave a insertar en el contenedor multimapa.
  • elemento: Especifica el elemento de la clave que se va a insertar en el contenedor del mapa.

Valor devuelto: la función no devuelve nada.

A continuación se muestra el programa para ilustrar try_emplace() en C++:

// 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;
}

Producción:

Publicación traducida automáticamente

Artículo escrito por chirags_30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *