所以我有一个无符号整数向量(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 循环以删除所有值。这是正确的行为吗?如果不是,我哪里出错了?