STL bind1st bind2nd

头文件是<functional>

bind1st 和 bind2nd 是两个捆绑函数。

bind1st(const Operation& op, const T& x)就是这么一个操作:x op value

bind2nd(const Operation& op, const T& x)就是这么一个操作:value op x

其中value是被应用bind的对象。这两个配接器都用于将一个二元算子转换成一个一元算子。

一般绑定函数和STL greater<int >和less<int>一同应用。


#include<iostream>

#include<vector>

#include<algorithm>

#include<functional>

using namespace std;

int main()

{

vector<ivec;

for(int i=1;i<=15;++i)

{

ivec.push_back(i);

}

//查找其中大于5的元素的个数

//也就是是5<element 成立的元素的个数

int res = count_if(ivec.begin(),ivec.end(),bind1st(less(),5));

cout<<rec<<endl;//统计ivec中大于5元素的个数
//统计5>element成立的元素的个数

int res2 = count_if(ivec.begin(),ivec.end(),bind2nd(less(),5));

cout<<res2<<endl;  //统计ivec中小于5元素的个数

return 0;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容