我有一个班级玩家:
class Player
{
public:
int pos,money;
float x,z,y;
string name;
Model pion,banner;
}
和类Model
class Model
{
public:
vector<coordinate>vertex;
vector<uv>textureCoordinates;
vector<coordinate>normals;
vector<face>faces;
vector<material>materials;
}
struct坐标,uv,face和material只有float和int变量,所以不用担心。 我也有一个
vector<Player>player;
在我的程序的某个时刻,我尝试
int currentPlayer=something;
player.erase(player.begin()+currentPlayer);
当我这样做时,我的程序停止并给我一个错误:
Proces returned -1073741819 <0x0000005>
我做错了什么?我应该如何建立我的析构函数?
答案 0 :(得分:0)
您可以使用std :: advance(iterator,n)将迭代器推进到n位置并将其擦除。
答案 1 :(得分:0)
我解决了我的问题。看起来当我只有一名玩家离开时我的代码不再工作了,因为在我的代码中的某处我做了
currentPlayer++;
currentPlayer%=player.size();
并且因为player.size()等于1导致我的问题失败了。无论如何都要求帮助。