Конструкторы значений карты STL

У меня есть класс X, который я хотел бы поместить в карту STL типа std :: map. Карта STL должна где-то хранить X в памяти, поэтому я ищу эффективный (время выполнения и память) способ создания X и его сохранения на карте.

Я заметил, что следующий код, где x - это объект типа X, а stlMap - это карта типа std :: map:

stlMap["test"] = x;

В результате вызывается следующее:

X конструктор по умолчаниюX Копировать конструкторX Копировать конструкторХ деструкторХ деструкторX конструктор присваиванияХ деструктор

Почему создается так много объектов X?

Это неэффективное использование времени и памяти?

Есть ли лучший способ поместить объект в карту? Может быть, изменить карту, чтобы быть картой строк на х *?

Ответы на вопрос(5)

Ваш ответ на вопрос