typedef map<KeyType, ValType> KVMap;
KVMap kvmap;
kvmap.insert(KVMap::value_type(key, val));
kvmap.insert(make_pair(key, val));
¿Cuál de las opciones anteriores para insertar en un mapa STL es siempre más rápida? ¿Por qué?C++: value_type versus make_pair, ¿cuál es más rápido para la inserción de mapas?
Nota: Soy muy consciente de que insert()
es más rápido que usar []=
para agregar (sin actualizar) los pares clave-valor a un mapa. Supongamos que mi consulta es sobre agregar, no actualizar. Por lo tanto, lo he restringido a insert()
.
A menos que su programa consista únicamente en inserciones en los mapas, ¿realmente cree que se notará alguna diferencia de velocidad? Debería obtener un perfil para perfilar su programa terminado, limpio y mantenible para ver cuáles son realmente los puntos lentos. Y no debería haber una diferencia, después de la línea. – GManNickG
GMan: La diferencia fue muy pequeña. Vea mi comentario a la respuesta de Karl. –