下列代码的输出为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

include “iostream”

include “vector”

using namespace std;

int main(void)
{
vectorarray;
array.push_back(100);
array.push_back(300);
array.push_back(300);
array.push_back(500);
vector::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;
}
正确答案: B 你的答案: C (错误)

100 300 300 500
100 300 500
100 500

vector在erase之后,指向下一个元素的位置,其实进行erase操作时将后面所有元素都向前移动,迭代器位置没有移动。itor=array.erase(itor) erase返回下一个元素的地址,相当于给itor一个新值。

vector中erase函数相关推荐

  1. 向量vector 中主要函数的使用

    一.vector用于实现数组的功能,相当于在数组的基础上封装了一些常用的功能. vector的主要函数 函数名称 功能 push_back 在尾部添加一个元素 pop_back 在尾部删除一个元素 c ...

  2. C++中erase()函数

    str.erase(a,b) : 从str中删除迭代器对a和b所表示的范围中的元素,返回b. 标准库类型string表示可变长的字符序列.可以通过string类的erase()函数来对该字符序列进行删 ...

  3. 正确使用STL-MAP中Erase函数

    一切尽在代码中. #include <iostream> #include <map> #include <string> using namespace std ...

  4. vector的erase函数

    #include<bits/stdc++.h> using namespace std; vector<int >a; int main() {for(int i=1;i< ...

  5. 没有躲过的坑--vector使用erase后迭代器变成野指针

    没有躲过的坑--vector使用erase后迭代器变成野指针以及remove和erase的区别 本博客转载自:http://blog.csdn.net/wangshubo1989/article/de ...

  6. vector用erase删除元素时,为什么被删元素的析构函数会被调用更多次?

    vector用erase删除元素时,为什么被删元素的析构函数会被调用更多次? 分类: C++2011-08-18 14:55 720人阅读 评论(0) 收藏 举报 vectoriteratorexce ...

  7. Vector的所有函数

    构造函数 语法: C++ Vectors可以使用以下任意一种参数方式构造: vector();    //无参数 - 构造一个空的vector vector( size_type num, const ...

  8. vector中的push_back(涉及到动态分配),resize,reserve,swap方法解析

    目录 一.vector的push_back解析 二.size和capacity 三.resize和reserve 1.resize 2.reserve 四.关于reserve的应用 五.内存释放 sw ...

  9. vector容器中erase(删除)的使用

    erase函数可以用于删除vector容器中的一个或者一段元素,在删除一个元素的时候,其参数为指向相应元素的迭代器,而在删除一段元素的时候,参数为指向一段元素的开头的迭代器以及指向结尾元素的下一个元素 ...

最新文章

  1. 《maven官方文档》5分钟开始Maven
  2. 最牛B 的 Linux Shell 命令(一)
  3. 线程、进程、多线程、多进程和多任务有啥关系?
  4. spring学习-xml属性注入-数组--list--map--set类型
  5. PYTHON之计算机语言基础知识 —— 字符编码
  6. 最简单的List集合排序方法
  7. 浅谈Java及应用学java
  8. 前端系列教程之JS(自认为有用代码)
  9. 【R文本分析】《工作细胞》是一部成功的科普番嘛?
  10. 输入框字母自动转换大写
  11. python控制窗口_python小笔记-控制窗口的现实和隐藏
  12. 给手机安装sqlite3
  13. 常规设置——SDKMAN
  14. python中x%y是什么意思_python是什么
  15. 关于Servlet的两种配置Web.xml文件配置或者使用(@WebServlet(name = ,urlPatterns = ))配置问题——WebServlet注解
  16. 【154期】面试官问:请你说说 B 树、B+ 树的原理及区别?
  17. Excel在统计分析中的应用—第二章—描述性统计-未分组数据的四分位偏差的求解方法
  18. 关于STM32串口中 0x0a,0x0d的学习
  19. 一个ADC做多个按键扫描检测
  20. X61T L7500割脉超频成功!

热门文章

  1. Replation requires the actual server name ... Replication.Utilies
  2. Ubuntu18.04 安装 gnuplot
  3. 我眼中的Linux设备树(六 memorychosen节点)
  4. python刷题软件代码_Python使用docx模块实现刷题功能代码
  5. WPF 3D中多个模型如何设置某一个在最前?
  6. 根据用户的生命周期,实现个性化的运营策略
  7. FAQ宝典之常见问题排查与修复方法
  8. 代码生成工具Database2Sharp功能功能完善及更新
  9. Flex 主窗体给弹出窗体传值
  10. c#获取电脑硬件信息参数说明(硬盘篇 Win32_DiskDrive)