Nach meinem Verständnis kann der Schlüssel in einem Wertpaar in einer std :: map nach dem Einfügen nicht mehr geändert werden. Bedeutet dies, dass das Erstellen einer Map mit dem Schlüsselvorlagenargument als const keine Auswirkung hat?
%Vor% Die Antwort auf Ihre Titelfrage ist ja. Da ist ein Unterschied. Sie können ein std::map<int, int>
nicht an eine Funktion übergeben, die ein std::map<const int, int>
übernimmt.
Das funktionale Verhalten der Karten ist jedoch identisch, auch wenn sie unterschiedliche Typen sind. Dies ist nicht ungewöhnlich. Int und Long verhalten sich in vielen Kontexten gleich, obwohl sie formal unterschiedliche Typen sind.
Wie Dewfy sagte, spielt es bei dem von Ihnen angegebenen Beispiel keine Rolle, da int ein eingebauter Typ ist und nach Wert kopiert wird, aber mit char * ist es etwas anders ...
Wenn du
hättest %Vor%Dann können Sie keine Variable einfügen, die als const deklariert ist. char * wird fehlschlagen
%Vor%mit einem
%Vor%kann man eigentlich sagen
%Vor%mit einem
%Vor%Sie können nur
verwenden %Vor%