我还有一个我似乎无法解决的问题......,或者在这个网站上找到......
我有一个带有映射的对象(称为 DataObject),声明如下:
std::map<size_t, DataElement*> dataElements;
现在我有一个复制函数(在复制构造函数中使用):
void DataObject::copy(DataObject const &other) {
//here some code to clean up the old data in this object...
//copy all the elements:
size = other.getSize();
for(size_t i = 0; i < size; ++i) {
DataElement* dat = new DataElement(*other.dataElements[i]);
dataElements[i] = dat;
}
}
这不会编译,因为 dataElements[i] 在 const 对象上是不可能的。如何对 const 对象拥有的地图中的所有元素进行深层复制?
我知道 find() 函数在 const 映射上是可能的,但是我怎样才能得到我想要复制的实际对象呢?