[转] C/C++ STL之remove
来源:互联网 发布:深度卷积对抗生成网络 编辑:程序博客网 时间:2024/06/16 11:14
http://www.cppreference.com/wiki/cn/stl/algorithm/remove
语法:
#include <algorithm> forward_iterator remove( forward_iterator start, forward_iterator end, const TYPE& val );
remove 算法移除 [start,end)
范围之内的所有与 val
相等的元素。
此函数的返回值是一个迭代器,它指向不包含与 val
相等的元素的新序列的最后一个元素的后面。
注意remove的实现通常并不真的从 [start, end)
范围内移除元素;如果在一个容器上面调用remove,在调用之后此容器的长度并不会发生改变(只通过iterators,remove并不能影响容器的长度),所有元素还是留在容器内。然而,remove将所有被 “removed” 的元素放在容器的尾部,然后返回一个区分未被删除和被删除元素的迭代器。为了从一个容器删除元素,你应该调用此容器的 erase 方法删除从返回的迭代器(iterator)处开始的元素。这通常被联合起来称作:erase-remove idiom:
container.erase(remove(container.begin(), container.end(), val), container.end());
(container can be of type vector, string or deque)
remove 函数的时间复杂度是线性的(linear time)。
相关话题:remove_copy, remove_copy_if, remove_if, unique, unique_copy
- [转] C/C++ STL之remove
- C++STL之multimap
- C++STL之string
- C++STL之迭代器
- C STL 之算法
- C++STL之string
- C++STL 之 迭代器
- C++STL之string
- C++STL之string
- C++STL之迭代器
- c++STL之string
- c++STL之vector
- C++STL之组件
- C++STL之vector
- C++STL之迭代器
- C++STL之map
- C++STL之string
- [C++]STL之map
- BOOTP 自举协议
- 禁用Backspace键 ,ASP.NET按删除键返回上一张页面
- ASP.NET防SQL注入脚本程序
- Joel Spolsky对计算机学生的七大建议 (英文原稿)
- 利用windows批处理命名定时备份数据库
- [转] C/C++ STL之remove
- debian mysql 允许外部链接方法
- 关于dahdi支持的tonezone(区域音调)设置
- 郁闷了 就看过来哈 不笑我就咯吱你 哈哈
- 学生职业准备八大指标
- 凯立德GPS导航地图的文件说明
- datalist 字符串的截取
- 给自己生活的TIPS: 洗衣服的好方法
- [Notes] How to Be a Good Graduate Student