vector 实现删除指定元素的方法
vector<int>a里面存了很多值如4现在我只想删4现在我使用迭代器寻找可是删除之后程序就会崩溃for(it=a.begin();it!=a.end();it++){...
vector<int> a 里面存了很多值 如 4
现在我只想删4
现在我使用 迭代器寻找 可是删除之后 程序就会崩溃
for(it = a.begin();it != a.end(); it++)
{
if (1 == *it)
a.earse(it);
}
现在我想使用其它的方法来删我指定的元素,有其它好方法么 求解 展开
现在我只想删4
现在我使用 迭代器寻找 可是删除之后 程序就会崩溃
for(it = a.begin();it != a.end(); it++)
{
if (1 == *it)
a.earse(it);
}
现在我想使用其它的方法来删我指定的元素,有其它好方法么 求解 展开
2个回答
展开全部
a.erase(it++); 注意,一定是it++,而不是++it。
删除之后,原来那个it就无效了,需要向后移动一个,否则for里面判断就会崩溃
另外,我忘了告诉你,应该这样写:
for (vector<int>::iterator it = v.begin(); it != v.end();) //for循环中不要it++
{
if (*it == 1)
{
v.erase(it++);
}
else
{
it++;
}
}
删除之后,原来那个it就无效了,需要向后移动一个,否则for里面判断就会崩溃
另外,我忘了告诉你,应该这样写:
for (vector<int>::iterator it = v.begin(); it != v.end();) //for循环中不要it++
{
if (*it == 1)
{
v.erase(it++);
}
else
{
it++;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询