第一次在这里发帖,这让我发疯了!我不能很好地解释它,所以我会尝试举一个例子。
我正在尝试检索一个非常大( 100k )向量中的元素以将其擦除。迭代槽需要很长时间......所以我尝试了这个:
这是我列表中的一个小例子。它存储在我的单例粒子发射器类中。
vector<Particle> particles;
particles.reserve(100);
这是我的粒子的剥离版本
class Particle
{
Particle:
~Particle:
void Delete
{
int listNum = (this - &particles[0]);
particles.erase(particles.begin+listNum);
}
};
这一切都很好,但我不想将每个粒子都保存在堆栈上,所以我想改变它
vector<Particle> particles;
进入
vector<Particle*> particles;
现在我的问题是:如果向量由粒子指针组成,是否仍然可以从列表中删除和擦除粒子?
我不确定我是否清楚我的问题,但我希望你能理解!
或者,如果有人知道更好的性能明智的解决方案,我想听听!
提前致谢!