Constructores de valores de mapas STL

Tengo una clase X que me gustaría poner en un mapa STL de tipo std :: map. Un mapa STL necesita tener X almacenada en la memoria en algún lugar, así que estoy buscando una manera eficiente (tiempo de ejecución y memoria) para crear X y almacenarla en el mapa.

Noté que el siguiente código donde x es un objeto de tipo X y stlMap es un mapa de tipo std :: map:

stlMap["test"] = x;

Resultados en el siguiente llamado:

X constructor por defectoX Copiar constructorX Copiar constructorX destructorX destructorConstructor de asignaciones XX destructor

¿Por qué se crean tantos objetos X?

¿Es un uso ineficiente del tiempo y la memoria?

¿Hay una mejor manera de poner un objeto en un mapa? ¿Quizás cambiar el mapa para que sea un mapa de cadenas a x *?

Respuestas a la pregunta(5)

Su respuesta a la pregunta