创建重复对象的向量
Create vector of duplicate objects?
我的向量为50,在矢量内部为5个对象。我想复制这5个对象中的所有内容,并用它们填充其余的矢量。
我下面的内容完全复制了对象(i = 5是因为我忽略了前4个向量元素(。
for (int i = 5; i <= CParams::iNumBirds; i++){
m_vpDisplayableObjects[i + 5] = m_vpDisplayableObjects[i];
}
,但问题是我想给每个对象一个不同的ID,0-50。请参阅下面的
for (int i = 0; i < CParams::iNumBirds; i++) {
m_pMainEngine->GetDisplayableObject(i + 5)->ObjectID = i;
}
显然,由于它们是副本,因此每5个元素重置objectid,因此最终所有对象具有45-50而不是0-50。
我的问题是,如何创建这些对象的副本,但要给每个对象一个不同的objectid?
您可以创建一个将复制对象的属性复制到新对象的属性的函数,并将新对象的ID传递为参数。
Obj copy(Obj& obj, int id) {
Obj newObj();
// copy atributes
newObj.attribute1 = obj.attribute1;
//...
newObj.ObjectID = id;
return newObj;
}
然后在for loop
中调用此功能for (int i = 5; i <= CParams::iNumBirds; i++){
m_vpDisplayableObjects[i + 5] = copy(m_vpDisplayableObjects[i], i + 5);
}
相关文章:
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 迭代时从向量和内存中删除对象
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 如何创建从同一类继承的不同对象的向量
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 从多个源构造一个对象,包括一个对象向量
- 在C 中,是否有可能在不兼容类型的std ::向量对象之间传输不同类型的缓冲区
- 将向量对象存储在共享指针投掷错误中
- E0312,C2664尝试将向量对象作为函数参数传递时错误
- 相对于向量对象的两个成员,找到两个向量的相交的有效方法
- 将数据从文件读取到向量对象
- C 向量对象访问
- 向量对象声明后的括号是什么意思
- 2向量对象指向相同的分配内存
- 如何返回向量对象
- 传递单个或向量对象时没有重载函数的实例
- 指向数组和向量对象的指针
- 向量对象库,可以存储其他对象类型的对象
- 如何从另一个向量/对象集构造新的向量/指针集