对象的 C++ 映射本地复制
c++ map of objects local copy
我有一个对象映射,我将一个对象复制到局部变量,然后删除映射中的对象。当我在本地对象上工作时,这会产生问题吗?
std::map<int, obj>::iterator it2 = mymap.find(objnum);
mylocalobj = it2->second;
mymap.erase(it2);
//continue working on mylocalobj
复制是这里的关键词,如果你在映射中复制了对象,那么原始对象会发生什么就不再重要了,除非你没有在obj
类中正确实现复制语义。
如果你还没有这样做,那么你应该认为你的代码是有缺陷的。
相关文章:
- 将包含不可复制对象的对插入到映射中
- c++:复制、删除和运算符=在原始指针映射中
- 生成器用于提升::融合::使用不可复制的值类型进行映射初始化
- 复制映射迭代器对值的省略
- 将映射从第二个元素复制到另一个地图
- C 将映射复制到使用STD ::移动的向量
- 将值 (mapped_type) 从映射复制到矢量,给定从键到索引的映射
- 如何使用密钥 2 更新 STL 映射键 1 并将值复制到键 2 中
- 将std ::映射复制到std ::对向量
- 不可复制的对象、映射和shared_ptr:复制构造函数中出错
- 复制地图<双精度,元组<双精度,双精度>>映射<双精度,双精度>没有循环?
- 复制存储在内存映射文件中的数组的一部分
- 如何将std ::映射的第一个N元素复制到另一个地图
- 为什么映射上的std::for_each调用复制构造函数
- 如何将映射的内容从一个类复制到另一个类的新向量中
- C++感知复制插入到std::映射中
- C++11:std::unordered_map<int,std::stack<int>> 从映射获取值而无需多次复制
- 有没有一种更干净的方法可以在c++(11)中复制具有多类型值的无序映射
- 如何将键值对引用从一个映射复制到同一类型的另一个映射
- 复制映射元素的正确方法