Map Value Frage



  • Mahlzeit,

    wenn ich eine Map habe mit einem Objekt als Value:
    map<int, Foo> myMap;
    und jetzt schreibe:
    myMap[2].member = 33;
    Kann man das so zusammenfassen:
    - wenn in myMap noch KEIN Value für 2 ist, dann wird ein Foo per Default Ctor gebaut und das gebaute Objekte per Referenz zurückgegeben
    - wenn in myMap schon ein Value für 2 drinnen ist, wird einfach das gespeicherte Objekte per Referenz geliefert
    ?
    Stimmt das?



  • Ja, kannst du - genauso arbeitet der Index-Operator für map<>



  • Dann ist es ja eigentlich clever, wenn man als Value Objekte speichert und nicht Zeiger auf Objekte, oder? Denn dann muss man sich nicht um delete kümmern.



  • Frager++ schrieb:

    Dann ist es ja eigentlich clever, wenn man als Value Objekte speichert und nicht Zeiger auf Objekte, oder? Denn dann muss man sich nicht um delete kümmern.

    Generell ist es clever, auf manuelle Speicherverwaltung zu verzichten, wo möglich. Viele explizite delete s sind oft ein Anzeichen schlechter Abstraktion (RAII).


Log in to reply