我的结构如下所示:
struct A{
int t; int j;}
struct A 的对象包含以下值:
t j
20 191
111 18
888 90
我将所有这些对象保存在 std::vector 中。现在我想从这个向量中删除 t==111 和 j<20 的元素。现在我正在迭代向量,以便以下面给出的方式删除元素:
std::vector<A>::size_type i = 0;
while ( i < v.size() ) {
if ( (v[i].t==111) && (v[i].j<20) ) {
v.erase( v.begin() + i );
} else {
++i;
}
}
除了迭代之外,还有更好的方法来删除用户定义数据类型的 std::vector 中的元素。