在试图修补除其他事项外的内存泄漏方项目我完全糊涂了自己的指针和列表和地图以及内存等创建一个指向列表中的对象的指针映射?
我想创建对象在整个项目生命使用的列表。但我也想使用地图通过其唯一的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