坑 - stl之刪除元素
阿新 • • 發佈:2018-01-23
iterator ima rst 技術分享 gpo 返回值 const span 返回
- 概述
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之刪除元素