相关疑难解决方法(0)

如何擦除和删除存储在向量中的对象的指针?

我有一个向量存储指向动态实例化的许多对象的指针,我正在尝试迭代向量并删除某些元素(从向量中移除并销毁对象),但我遇到了麻烦.这是它的样子:

    vector<Entity*> Entities;
    /* Fill vector here */
    vector<Entity*>::iterator it;
    for(it=Entities.begin(); it!=Entities.end(); it++)
        if((*it)->getXPos() > 1.5f)
            Entities.erase(it);
Run Code Online (Sandbox Code Playgroud)

当任何实体对象到达xPos> 1.5时,程序崩溃并出现断言错误......任何人都知道我做错了什么?

我正在使用VC++ 2008.

c++ iterator vector erase visual-c++

30
推荐指数
2
解决办法
8万
查看次数

标签 统计

c++ ×1

erase ×1

iterator ×1

vector ×1

visual-c++ ×1