所以我有一个无符号整数向量(vector<unsigned int>
称为vector1
)。我有另一个我创建的结构向量(vector<struct>
称为vector2
)。vector<int>
保存一个整数,它是 的索引vector<struct>
。例如,假设vector<int = {5, 17, 18, 19}
. 这意味着vector2.at(5) == vector2.at(vector1.at(0))
。
在结构中,我有一个名为var
. 在大多数情况下,var
是错误的。我想删除所有vector1
具有var
= true的元素。
我所做的是:
for (unsigned int i = 0; i < vector1.size(); i++)
{
if (vector2.at(vector1.at(i)).var)
vector1.erase(vector.begin() + i);
}
唯一的问题是它不会删除所有真正的元素。我已经多次运行 for 循环以删除所有值。这是正确的行为吗?如果不是,我哪里出错了?