【发布时间】:2011-09-09 09:42:54
【问题描述】:
在尝试修补辅助项目中的内存泄漏等问题时,我完全把自己与指针、列表、映射和内存等搞糊涂了。
我想创建一个对象列表以在整个程序生命周期中使用。但我还想使用地图通过其唯一 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 类的信息,以便获得更好的答案...
标签: c++ list pointers object map