在試圖修補除其他事項外的內存泄漏方項目我完全糊塗了自己的指針和列表和地圖以及內存等創建一個指向列表中的對象的指針映射?
我想創建對象在整個項目生命使用的列表。但我也想使用地圖通過其唯一的ID從列表中快速訪問單個對象。我想我可以有一個指向列表中對象的指針地圖來減少內存大小。
這可能嗎?
我一直工作在測試代碼,看起來像:
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或類似的變體。我沒有得到任何好運。我知道我的基本面並不是他們應該關注記憶的地方。任何幫助表示讚賞!
請添加一些關於cObject和ciEntity類的更多信息以允許更好的答案... – 2011-06-06 15:33:57