Конструкторы значений карты STL
У меня есть класс X, который я хотел бы поместить в карту STL типа std :: map. Карта STL должна где-то хранить X в памяти, поэтому я ищу эффективный (время выполнения и память) способ создания X и его сохранения на карте.
Я заметил, что следующий код, где x - это объект типа X, а stlMap - это карта типа std :: map:
stlMap["test"] = x;
В результате вызывается следующее:
X конструктор по умолчаниюX Копировать конструкторX Копировать конструкторХ деструкторХ деструкторX конструктор присваиванияХ деструкторПочему создается так много объектов X?
Это неэффективное использование времени и памяти?
Есть ли лучший способ поместить объект в карту? Может быть, изменить карту, чтобы быть картой строк на х *?