博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STL bind1st bind2nd详解
阅读量:5249 次
发布时间:2019-06-14

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

STL bind1st bind2nd详解

 

先不要被吓到,其实这两个配接器很简单。

首先,他们都在头文件<functional>中定义。
其次,bind就是绑定的意思,而1st就代表first,2nd就代表second,现在名在可以很快记住了。
再次,他们的申明是一样的,都是(const Operation& op, const T& x)。

简单的说,bind1st(const Operation& op, const T& x)就是这么一个操作:x op value,而bind2nd(const Operation& op, const T& x)就是这么一个操作:value op x,其中value是被应用bind的对象。这两个配接器都用于将一个二元算子转换成一个一元算子。下面来看一段代码吧!

//Coded by www.programlife.net#include 
#include
#include
#include
using namespace std;int main(){ vector
coll; for(int i = 1; i <= 10; ++i) { coll.push_back(i); } //查找元素值大于10的元素的个数 //也就是使得10 < elem成立的元素个数 int res = count_if(coll.begin(), coll.end(), bind1st(less
(), 10)); cout << res << endl; //查找元素值小于10的元素的个数 //也就是使得elem < 10成立的元素个数 res = count_if(coll.begin(), coll.end(), bind2nd(less
(), 10)); cout << res << endl; return 0;}

程序的输出结果是0 9

转载于:https://www.cnblogs.com/GQHEFEI/p/6259758.html

你可能感兴趣的文章
Octotree Chrome安装与使用方法
查看>>
用CALayer实现下载进度条控件
查看>>
Windows 环境下基于 Redis 的 Celery 任务调度模块的实现
查看>>
可编辑路由—Asp.NET MVC项目编译后,修改路由配置可动态加载
查看>>
UESTC 1330 柱爷与远古法阵【高斯消元】
查看>>
Tomcat修改用户名密码教程
查看>>
模块化概念
查看>>
基本排序
查看>>
前端非对称加密,后端Node.js解密(jsencrypt插件)(不需要密钥转码)
查看>>
list删除、集合遍历删除
查看>>
趣谈Java变量的可见性问题
查看>>
图标字体制作 -- 将SVG制作成图标字体文件,通过引入使用
查看>>
为Eclipse添加C/C++开发工具
查看>>
杭州互联网公司汇总
查看>>
Sublime text3 注册失效解决方法
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
ssm框架之将数据库的数据导入导出为excel文件
查看>>
hdu 1423 Greatest Common Increasing Subsequence(DP 最长公共上升子序列)
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
如何在.xml文件中配置Servlet信息
查看>>