我有一个问题一直无法解决,也没有在这个网站上找到相关解答...
我有一个称为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;
}
}
这段代码无法编译,因为在一个const对象上不能使用dataElements[i]。那么如何对被const对象所拥有的map中的所有元素进行深拷贝?
我知道在const map上可以使用find()函数,但是如何获取我想要拷贝的实际对象呢?