c++ - use erased element in map -
i'm wondering if can still access/modify data of erased element in map inside function following:
struct custstruct { int a; int b; }; void useaftererase() { map<int, custstruct> mymap; mymap[0] = {0,1}; mymap[3] = {2,3}; mymap[4] = {4,5}; auto itr = mymap.find(3); auto & element = itr->second; mymap.erase(itr); // access after erased element.a = 100; element.b = 100; cout << element.a << " " << element.b << endl; } assume single thread , access/modify right after deletion before map modified access/modify safe?
it's never safe. object destroyed when it's removed map. (if not, when be?)
Comments
Post a Comment