vector删除元素可用eraseremove,但是使用erase后vector本身size()随之变化,而使用remove后vector本身size()并没有变化,只有迭代器指向变了!!!所以使用remove后不建议用size()遍历元素,容易出bug!!!

remove可以删除所有指定元素,删除后size()并没有变化,remove命令返回迭代器,指向更新后的末尾(记为iter),但是对于vector本身的end()而言并没有变化,这也是size()没有变化的原因,size()没有变化的话就不能依靠size()遍历,因为我们知道删除元素后的末尾迭代器,所以可以利用迭代器遍历,即for(auto it = mymap.begin(); it != iter; it++)

如果使用remove命令后需要size()也相应改变的话,添加使用erase删除iterend()的部分,即mymap.erase(iter, mymap.end())

vector删除元素erase与remove区别相关推荐

  1. c++容器vector删除元素erase()与迭代器的使用

    写代码时用 for 循环删除 vector 中的元素发现总是报错,后来最细看了下 erase() 方法发现 erase()方法使用后原来的迭代器失效,返回新的迭代器. 正确的使用方法是: #inclu ...

  2. vector 删除元素的几种方法

    vector 删除元素的几种方法 1.利用成员函数pop_back()可以删除最后一个元素: 2.利用成员函数erase()可以删除由一个iterator指出的元素: 3.通过STL中的算法库函数re ...

  3. C++ Primer:vector删除元素时迭代器失效问题

    提示:以下所有程序是使用MinGW编译运行的.若使用VS的MSVC运行,程序会报错,因为MSVC无法解引用失效迭代器或尾后迭代器. 1. 删除尾元素 #include <iostream> ...

  4. c++ vector删除元素remove与erase区别

    目录 erase: remove: vector中, remove函数和 erase函数都可以实现元素的删除,但它们的用法稍微有些区别: erase是删除指定位置的元素或者指定区域内的所有元素 rem ...

  5. C++ std::vector删除元素的几种方式及区别

    容器vector在删除过程中,常用的函数. 函数 作用 pop_back() 删除 vector 容器中最后一个元素,该容器的大小(size)会减 1,但容量(capacity)不会发生改变. era ...

  6. vector删除元素

    vector::erase()和algorithm中的remove(remove_if)函数都可以用来删除vector中的元素.但是其中也有些区别. (关于remove_if的使用,请参考我的博客:r ...

  7. [算法] vector删除元素

    #include <iostream> #include <algorithm>using namespace std;bool IsOdd (int i) { return ...

  8. C++ vector删除元素

    C++ vector中实际删除元素使用的是容器vector中std::vector::erase()方法,而std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换. s ...

  9. 容器删除元素erase,迭代器失效的问题

    转载链接:http://blog.csdn.net/hlsdbd1990/article/details/46363433  (这篇写的很全面很详细,转载的博主是个女生,厉害,比较有用所以转载收藏下) ...

最新文章

  1. SpringBoot实现万能文件在线预览,已开源,真香!!!
  2. 金三银四,写个漂亮的技术简历
  3. 细数移动IM开发中的那些坑
  4. 如何修改Series和DataFrame类型中的元素值_Redis的HSCAN命令中COUNT参数的失效场景
  5. Android多媒体整体架构图
  6. oracle中to_date函数详解
  7. 超级警探大战悍匪2java_JavaWeb之会话技术
  8. 软件测试:面试屡屡碰壁,只因你身上少了这几个特征!
  9. c语言头文件格式图片_阿波罗 STM32F767 开发板资料连载第四十九章 图片显示实验...
  10. 敏捷开发框架_RingCentral Tech丨LeSS- 大规模敏捷开发框架实践心路
  11. Java知多少(87)选择框和单选按钮
  12. IOS的Application以及IOS目录的介绍
  13. C语言打印九九乘法表
  14. 深度学习中的9种归一化方法概述
  15. 用户使用情况报告(附用户使用调查表)
  16. 量子力学入门---基本概念
  17. TODA EMS(设备管理系统)简介
  18. 123.R简介和统计绘图
  19. 超强大在线词频统计功能,从一篇文章到一个G的文本均可轻松统计
  20. ping问题详解(请求超时,无法访问目标主机)

热门文章

  1. c语言卸载软件官方下载,CCleaner _CCleaner 下载[2021官方最新版]CCleaner 安全下载_ 极速下载...
  2. springboot yml使用
  3. python扩展屏幕截图_Python实现屏幕截图的两种方式
  4. Linux 音频回环播放(alsaloop)
  5. 在python语言中可作为源文件后缀名的是_在Python语言中,可以作为源文件后缀名的是( )_学小易找答案...
  6. 每条跑道背后,可能都有一个胖子~
  7. linux服务器udp抓包工具,Linux下抓包工具tcpdump使用介绍
  8. 炸弹人游戏_暴力枚举
  9. 18年迅雷区块链大赛拿了奖,感谢
  10. http直接访问含有中文的ulr失败