Ja, dieser Code würde für jede Art von Schlüssel funktionieren, einschließlich double
. Der Grund dafür ist, dass die nicht-const operator []
eine Referenz auf den Wert am Schlüssel, keine Kopie dieses Werts zurückgibt. Dies ist die Referenz, auf die der Operator ++
angewendet wird.
Das Codefragment, das Sie Werke zeigen, wie folgt:
- Für jeden Schlüssel
t
der in dem Behälter str
string
Typ,
- Die Karte
w
ist für den Schlüssel
- Da der Eintrag gegeben gesucht ist nicht da, ein neues wird in die Karte eingefügt
- Da der Schlüssel des Eintrags bekannt ist, aber der Wert nicht, wird ein Standardobjekt für den Wert erstellt
- Ein Verweis auf das neu-Objekt erzeugt (in diesem Fall
int&
initialisiert auf Null) an dem von den []
zurück
- Der
++
Operator auf die Referenz Aufrufer zurückgegeben angelegt wird, die 0
zu 1
(oder 0.0
zu 1.0
ändert usw.)
Ich kann nicht verstehen, was Sie tatsächlich fragen. Kannst du umformulieren? –
Sorry für Verwirrung. Die folgenden Antworten sind sehr hilfreich. – wenfeng