我的vector.erase()函数给出了一个错误-> "error C2582:'operator =‘函数在'Fire’中不可用
这是代码,向量在头文件中声明。
任何帮助都是非常感谢的。
//header
std::vector<Fire> _fires;
//cpp
void Fire::update()
{
for (unsigned int i = 0; i < _fires.size(); i++)
{
_fires[i].lifeTimer(); // updates the lifetime for all objects
if (_fires[i]._lifetime >= 200)
{
_fires.erase(_fires.begin() + i); //erase not working
}
}
}发布于 2014-06-18 19:33:54
您的Fire类没有赋值运算符,或者是不可访问的。
但是vector::erase()实现必须需要它,因为正如http://www.cplusplus.com/reference/vector/vector/erase/所指出的,擦除元素可能会导致元素被重新定位。
https://stackoverflow.com/questions/24283410
复制相似问题