Пытаясь исправить утечки памяти, помимо прочего, в стороннем проекте, я полностью запутал себя указателями, списками, картами, памятью и т. Д.
Я хочу создать список объектов, которые будут использоваться повсюдупрограммы жизни.Но я также хочу использовать карту для быстрого доступа к отдельным объектам из этого списка через их уникальный идентификатор.Я подумал, что мог бы иметь карту указателей на объекты в списке, чтобы сократить объем памяти.
Возможно ли это?
Я работал над тестовым кодом, который выглядит следующим образом:
list<cObject> mylist;
map<int, ciEntity*> mymap;
void main(void)
{
int x = 0;
class cObject *temp;
for(x = 0; x < 10; x++)
{
temp = new cObject;
temp->name = new char[25];
strcpy(temp->name, "Test");
temp->id=x;
mylist.push_back(*temp);
// now what with the map?
delete temp;
}
}
У меня были и другие идеи, которые слишком возились с объявлением карты.Я попытался использовать iter для просмотра списка, а затем mymap [id] = iter или аналогичные варианты.У меня была нулевая удача заставить что-либо работать.Я знаю, что мои основы не там, где они должны быть в отношении работы с памятью.Любая помощь приветствуется!