一道笔试题:vector::erase()
来源:互联网 发布:数据模型软件 编辑:程序博客网 时间:2024/06/06 08:51
vector::erase():从指定容器删除指定位置的元素或某段范围内的元素vector::erase()方法有两种重载形式
如下:
iterator erase( iterator _Where);
iterator erase( iterator _First, iterator _Last);
如果是删除指定位置的元素时:
返回值是一个迭代器,指向删除元素下一个元素;
如果是删除某范围内的元素时:返回值也表示一个迭代器,指向最后一个删除元素的下一个元素;
#include <iostream>
#include <vector>
using
namespace
std;
int
main(
void
)
{
vector<
int
>array;
array.push_back(100);
array.push_back(300);
array.push_back(300);
array.push_back(300);
array.push_back(300);
array.push_back(500);
vector<
int
>::iterator itor;
for
(itor=array.begin();itor!=array.end();itor++)
{
if
(*itor==300)
{
itor=array.erase(itor);
}
}
for
(itor=array.begin();itor!=array.end();itor++)
{
cout<<*itor<<
""
;
}
return
0;
}
下面这个代码输出的是() :100 300 300 500
在本题中,当 *itor==300成立时,删除第一个值为300的元素,同时itor指向下一个元素(即是第二个值为300的元素),
在for(;;itor++)执行itor,itor指向第三个值为300的元素,进入下一个循环
进入循环满足*itor==300,重复上面的过程,执行完循环,itor执行值为500的元素。
所有整个过程中,只删除了2个值为300的元素。 只删除了第一个和第三个300。
0 0
- 一道笔试题:vector::erase()
- STL vector erase 笔试 曼恒数字
- STL vector erase 笔试 曼恒数字
- 一道腾讯笔试题,考察对STL erase函数的运用
- vector中erase()用法——由阿里巴巴17实习生笔试题引入
- erase vector
- vector erase
- vector erase
- vector erase
- Vector-Erase
- gameloft一道笔试题
- google笔试题一道
- 网易一道笔试题!
- 一道迅雷笔试题
- 一道MSSQL笔试题
- 一道笔试题
- 一道java笔试题
- 一道笔试题
- 关于数据库外键的思考
- Wireshark图解教程(统计)
- Ubuntu16.04 gedit 中文乱码
- 自动登陆--Cookie
- HTTP请求报文和HTTP响应报文
- 一道笔试题:vector::erase()
- iOS每个Cell倒计时
- React Native 实例 - BBC新闻客户端
- shell基本语法
- 史上最全最强SpringMVC详细示例实战教程
- unity 事件的触发脚本
- Linux修改主机名
- CString Format(_T("%s")出错
- 正则表达式必须牢记的几个元字符详解(java使用实例)