码迷,mamicode.com
首页 > 其他好文 > 详细

坑 - stl之删除元素

时间:2018-01-23 20:26:01      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:.com   col   技术分享   变化   原型   示例   val   for   注意   

  • 概述

         stl中删除元素,会使用到erase或remove,erase一般用于删除一个或者一段范围内的元素,而remove则可以删除指定值的所有元素。但是在使用remove时会有一些需要注意的地方,不细心的话容易掉坑里,故记录在此。

 

  • remove的原型
template <class ForwardIterator, class T>
  ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& val);

       参数:

       [first, last)规定了被操作的范围,其中不包含last边界;

       val表示要被删除的值。

  • 示例

        技术分享图片

        输出如下↓↓↓↓↓

        技术分享图片

  • 解析

        执行remove后:

        1>、返回值为最后一个未被删除的元素的下一个位置;

        2>、原始vector的size未变化;

        3>、可以看出remove操作仅仅将后续有效数据往前移动到自由位置,具体算法如下↓↓↓↓

               技术分享图片

 

坑 - stl之删除元素

标签:.com   col   技术分享   变化   原型   示例   val   for   注意   

原文地址:https://www.cnblogs.com/letsgollc/p/8337318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!