Construtores de valor de mapa STL
Eu tenho uma classe X que gostaria de colocar em um mapa STL do tipo std :: map. Um mapa STL precisa ter o X armazenado na memória em algum lugar, então estou procurando uma maneira eficiente (tempo de execução e memória) de criar o X e armazená-lo no mapa.
Notei que o código a seguir, em que x é um objeto do tipo X e stlMap é um mapa do tipo std :: map:
stlMap["test"] = x;
Resultados no seguinte sendo chamado:
X construtor padrãoConstrutor X CopyConstrutor X CopyX destruidorX destruidorConstrutor de atribuição XX destruidorPor que tantos objetos X estão sendo criados?
É um uso ineficiente de tempo e memória?
Existe uma maneira melhor de colocar um objeto em um mapa? Talvez alterar o mapa para ser um mapa de cadeias de caracteres para x *?