博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
std::remove_if
阅读量:4311 次
发布时间:2019-06-06

本文共 871 字,大约阅读时间需要 2 分钟。

#include
#include
#include
#include
#include
#include
using namespace std;int main(){ int a[11]={ 1,2,3,4,99,5,6,99,7,8,99}; vector
>arr(a,a+11);// c cout<<&arr<
(), 99))); arr.erase( std::remove_if( arr.begin(), arr.end(),std::not1(std::bind2nd( std::less< int>(), 99))), arr.end()); //remove_if(arr.begin(),arr.end(),bind2nd(less
(),99)); cout<<&arr<

当将arr。ereas注释保留

remove_if( arr.begin(),  arr.end(),not1(std::bind2nd( std::less< int>(), 99)));的时候

 

因此可以看出remove_if并不是删除指定的元素,只不过是将后面的元素不断向前面进行覆盖,结束后返回符合条件的最后一个元素的下一个位置 ,此时在配合erase一起使用,删除后面不符合的元素

remove_if()类似于partition(), 但有两点不同: 1) 它们使用的谓词条件刚好相反. 2) remove_if只强调前面部分(第二部分不再需要了)

remove_if()以线性时间(linear time)运行.
remove_if()不能用于关联容器如set<>或map<>.

转载于:https://www.cnblogs.com/13224ACMer/p/6388121.html

你可能感兴趣的文章
表单序列化以及后台表单数据参数的提取
查看>>
SQL语句(十五)视图
查看>>
nginx 设置开机启动
查看>>
继承和组合
查看>>
小程序-----上传图片
查看>>
工作流表单自定义的误区
查看>>
带有循环功能的存储过程
查看>>
数据结构-链表插入节点
查看>>
软件项目开发流程
查看>>
常用排序算法
查看>>
DOM(文档对象模型)
查看>>
为什么要安全域,哪些区域需要单独划分安全域
查看>>
【BZOJ5297】【CQOI2018】社交网络(矩阵树定理)
查看>>
【BZOJ1921】【CTSC2010】珠宝商(点分治,后缀自动机)
查看>>
追寻生命的意义
查看>>
Something wrong with iPad
查看>>
新浪某个tab 页模仿
查看>>
PHP课后小结 2017.12.22
查看>>
管理信息系统作业
查看>>
jQuery 菜单插件
查看>>