Mai nap szívtam azzal, hogy egy std::set-ben módosítani akartam az értékeket és rá kellett jönnöm, hogy nem lehet, de ez igaz az összes többi asszociatív tárolóra, ami a C++-ban van: set,multiset,map,multimap (map esetén csak a kulcs értéke).
Az asszociatív tárolókba nagyon gyorsan lehet adatot tenni, és nagyon gyorsan lehet belőle eltávolítani (logaritmikus idő alatt), azonban ha lehetne módosítani, az azt jelentené, hogy át kell rendezni az egészet, ami időigényes, ezért nem engedi a C++, hogy módosítsd ezeket. Ezért, ha objektumokat tárolsz egy ilyen halmazban gyors elérés, és törlés céljából, mindig pointereket használj, és akkor nem fog panaszkodni a fordító. Gondoskodj a memória felszabadításáról, ha új objektumokat raktál bele.