对象的 C++ 映射本地复制

c++ map of objects local copy

本文关键字:复制 映射 C++ 对象      更新时间:2023-10-16

我有一个对象映射,我将一个对象复制到局部变量,然后删除映射中的对象。当我在本地对象上工作时,这会产生问题吗?

std::map<int, obj>::iterator it2 = mymap.find(objnum);
mylocalobj = it2->second;
mymap.erase(it2);
//continue working on mylocalobj 

复制是这里的关键词,如果你在映射中复制了对象,那么原始对象会发生什么就不再重要了,除非你没有在obj类中正确实现复制语义。

如果你还没有这样做,那么你应该认为你的代码是有缺陷的。