STL的模板类vector的元素删除问题

面试IBM时,面试官提到一个问题:给一个vector对象,如何实现遍历一个删除一个。这个问题主要考察vectorerase函数。

erase函数的声明如下:

iterator erase(

iterator _Where

);

iterator erase(

iterator _First,

iterator _Last

);

作用:从vector中删除从指定位置开始的一个或一系列元素。

参数:

_Where :要从vector中删除的元素的位置

_First:从vector中删除的第一个元素的位置

_Last:从vector中删除的最后一个元素后边的位置

返回值:指向所有所有被删除元素后剩余的第一个元素的迭代器,如果没有这样的元素,返回指向vector结尾的指针。

 

erase函数调用后,原有的迭代器会失效,而erase的返回值可以作为当前有效的迭代器。

void EraseAll(vector<int>& array)

{

vector<int>::iterator itr = array.begin();

while(itr != array.end())

{

itr = array.erase(itr);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值