【发布时间】:2015-04-20 09:06:22
【问题描述】:
我对 c++ 还很陌生,但对向量有疑问。我的目标是一旦我达到超出范围的条件,就使用擦除从向量中删除一个元素。这一切似乎工作正常,除了当我调用擦除时,它将指向第一个元素,但删除最后一个元素。基本上,循环将继续迭代并删除我的向量中的每个元素。我正在使用 push_back 将激光添加到代码中其他地方的向量中。
std::vector<Laser> m_Lasers;
for (int i = 0; i != m_Lasers.size(); i++)
{
m_Lasers[i].ClearLaser();
if (m_Lasers[i].GetX() > m_ScreenWidth || m_Lasers[i].GetX() < 0 || m_Lasers[i].GetY() < 0)
{
//erase the vector
m_Lasers.erase(m_Lasers.begin() + i);
i--;
}
}
my =operator 定义为:
void operator=(const Laser& L){};
在我的激光课上。我认为我的问题可能与此有关。
非常感谢您的帮助!
【问题讨论】: