emplazar vs insertar en C++ STL

En C++, todos los contenedores ( vector , stack , queue , set , map , etc.) admiten operaciones tanto de inserción como de ubicación.

Ambos se utilizan para agregar un elemento en el contenedor.
La ventaja de emplace es que realiza una inserción en el lugar y evita una copia innecesaria del objeto. Para tipos de datos primitivos, no importa cuál usemos. Pero para los objetos, se prefiere el uso de emplace() por razones de eficiencia.
 

CPP

// C++ code to demonstrate difference between
// emplace and insert
#include<bits/stdc++.h>
using namespace std;
  
int main()
{
    // declaring map
    multiset<pair<char, int>> ms;
      
    // using emplace() to insert pair in-place
    ms.emplace('a', 24);
      
    // Below line would not compile
    // ms.insert('b', 25);   
      
    // using insert() to insert pair in-place
    ms.insert(make_pair('b', 25));   
      
    // printing the multiset
    for (auto it = ms.begin(); it != ms.end(); ++it)
        cout << " " << (*it).first << " "
             << (*it).second << endl;
  
    return 0;
}

Producción: 
 

 a 24
 b 25

Complejidad del tiempo: La complejidad del tiempo depende del tipo de contenedor. Ambas operaciones tienen la misma complejidad temporal.

Vector: O(1)

Cola de prioridad: O (log n)

Establecer: O (registro n)

mapa: O (registro n)

Consulte Insertar elementos en std::map (insertar, colocar y operador []) para obtener más detalles.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *