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