頭文件是<functional>
bind1st 和 bind2nd 是兩個(gè)捆綁函數(shù)览闰。
bind1st(const Operation& op, const T& x)就是這么一個(gè)操作:x op value
bind2nd(const Operation& op, const T& x)就是這么一個(gè)操作:value op x
其中value是被應(yīng)用bind的對(duì)象狐史。這兩個(gè)配接器都用于將一個(gè)二元算子轉(zhuǎn)換成一個(gè)一元算子恐仑。
一般綁定函數(shù)和STL greater<int >和less<int>一同應(yīng)用。
#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的元素的個(gè)數(shù)
//也就是是5<element 成立的元素的個(gè)數(shù)
int res = count_if(ivec.begin(),ivec.end(),bind1st(less(),5));
cout<<rec<<endl;//統(tǒng)計(jì)ivec中大于5元素的個(gè)數(shù)
//統(tǒng)計(jì)5>element成立的元素的個(gè)數(shù)
int res2 = count_if(ivec.begin(),ivec.end(),bind2nd(less(),5));
cout<<res2<<endl;? //統(tǒng)計(jì)ivec中小于5元素的個(gè)數(shù)
return 0;
}