小编Fri*_*rik的帖子

如何根据另一个向量中的条件从向量中删除元素?

我有两个相等长度的向量,我想根据其中一个向量中的条件从中删除元素.应对两者应用相同的删除操作,以使索引匹配.

我提出了一个使用的解决方案std::erase,但它非常慢:

vector<myClass> a = ...;
vector<otherClass> b = ...;
assert(a.size() == b.size());
for(size_t i=0; i<a.size(); i++)
{
    if( !a[i].alive() )
    {

        a.erase(a.begin() + i);
        b.erase(b.begin() + i);
        i--;
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以更有效地执行此操作,最好使用stl算法?

c++ stl

2
推荐指数
1
解决办法
1137
查看次数

标签 统计

c++ ×1

stl ×1