0
我有以下循环:STD向量的擦除和的push_back
vector<int> vec;
vector<int>::iterator it;
// fill the vector with some values. func() is a boolean function on ints.
// fill_vec() fills a vector of ints with some values.
for (it = vec.begin(); it != vec.end();)
{
if (func(*it))
{
vector<int> new_vec;
fill_vec(new_vec);
it = erase(it);
for (int j =0 ; j < new_vec.size(); j++)
vec.push_back(new_vec[j]);
}
else
it++;
}
这是一个有效的循环?也就是说,我是否以正确的方式擦除/添加循环内的元素?