STL Map Value-Konstruktoren

Ich habe eine Klasse X, die ich in eine STL-Map vom Typ std :: map einfügen möchte. In einer STL-Map muss X irgendwo gespeichert sein, daher suche ich nach einer effizienten Möglichkeit (Laufzeit und Speicher), X zu erstellen und in der Map zu speichern.

Ich habe festgestellt, dass der folgende Code, bei dem x ein Objekt vom Typ X und stlMap eine Karte vom Typ std :: map ist:

stlMap["test"] = x;

Ergebnisse im Folgenden genannt:

X StandardkonstruktorX Konstruktor kopierenX Konstruktor kopierenX DestruktorX DestruktorX ZuweisungskonstruktorX Destruktor

Warum werden so viele X-Objekte erstellt?

Ist es eine ineffiziente Nutzung von Zeit und Gedächtnis?

Gibt es eine bessere Möglichkeit, ein Objekt in eine Karte einzufügen? Vielleicht ändern Sie die Map so, dass sie eine Map von Strings zu x * wird?