您的位置:首页 > 其它

一道笔试题:vector::erase()

2016-05-16 17:49 197 查看

vector::erase():从指定容器删除指定位置的元素或某段范围内的元素

vector::erase()方法有两种重载形式
如下:
iterator erase(   iterator _Where);
iterator erase(   iterator _First,   iterator _Last);

如果是删除指定位置的元素时:
返回值是一个迭代器,指向删除元素下一个元素;

如果是删除某范围内的元素时:返回值也表示一个迭代器,指向最后一个删除元素的下一个元素;

下面这个代码输出的是() :100 300 300 500

在本题中,当 *itor==300成立时,删除第一个值为300的元素,同时itor指向下一个元素(即是第二个值为300的元素),

                            在for(;;itor++)执行itor,itor指向第三个值为300的元素,进入下一个循环

         进入循环满足*itor==300,重复上面的过程,执行完循环,itor执行值为500的元素。

所有整个过程中,只删除了2个值为300的元素。 只删除了第一个和第三个300。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: