相关疑难解决方法(0)

迭代时从向量中删除项目?

我有一个向量,包含活动或非活动的项目.我希望此向量的大小对于性能问题保持较小,因此我希望从向量中删除已标记为非活动的项目.我在迭代时尝试这样做,但我收到错误"vector iterators incompatible".

vector<Orb>::iterator i = orbsList.begin();

    while(i != orbsList.end()) {
        bool isActive = (*i).active;

        if(!isActive) {
            orbsList.erase(i++);
        }
        else {
            // do something with *i
            ++i;
        }
    }
Run Code Online (Sandbox Code Playgroud)

c++ iterator stl

52
推荐指数
5
解决办法
6万
查看次数

标签 统计

c++ ×1

iterator ×1

stl ×1