0

出于性能原因(内存速度),我发现自己需要保留两个对象列表。

我正在使用对象指针,例如

std::list<MyClass*> m_list1;
std::list<MyClass*> m_list2;

我将对象添加到列表中

MyClass* myObject = new MyClass();
m_list1.push_back(myObject);
m_list2.push_back(myObject);

我面临的问题是我所做的更改m_list1并没有影响m_list2,所以很明显它们是副本而不是真正的交易。

存储这些的正确方法是什么,以免它们成为副本?不使用指针不是一种选择,因为这些都将在堆上分配。

4

1 回答 1

2

标准容器复制传入的值,但由于您传入了指针,所以复制的是指针。因此它们仍然指向同一个对象。问题一定出在其他地方。也许您可以发布您认为表现出这种行为的特定代码?

于 2012-07-07T03:19:02.587 回答