Что я пытаюсь сделать, так это создать два вектора объектов, где некоторые объекты вводятся в оба списка, а некоторые просто вводятся в один. Первая проблема, которую я обнаружил, заключалась в том, что когда я использовал push_back() для добавления объекта в оба списка, объект копировался, поэтому, когда я изменил его из одного списка, объект не изменился в другом. Чтобы обойти это, я попытался создать список указателей на объекты в качестве одного из списков. Однако, когда я позже обратился к указателю, данные оказались поврежденными, все значения члена данных были неправильными. Вот несколько фрагментов моего кода:
Определение векторов:
vector<AbsorbMesh> meshList;
vector<AbsorbMesh*> absorbList;
... Добавление объекта к обоим:
AbsorbMesh nurbsMesh = nurbs.CreateMesh(uStride, vStride);
// Add to the absorption list
absorbList.push_back(&nurbsMesh);
// Store the mesh in the scene list
meshList.push_back(nurbsMesh);
Доступ к объекту:
if (absorbList.size() > 0)
{
float receivedPower = absorbList[0]->receivedPower;
}
Что я делаю не так?