function template
<functional>
std::bind1st
template <class Operation, class T> binder1st<Operation> bind1st (const Operation& op, const T& x);
绑定第一个参数的函数对象
此函数使用二进制函数对象
op,通过将第一个参数绑定到固定值
x来构造一个一元函数对象。
返回的函数对象
bind1st定义了其
operator(),使其只能接受一个参数。此参数用于调用二进制函数对象
op,并将
x作为第一个参数的固定值。
它的定义与以下行为相同:
1 2 3 4 5
|
template <class Operation, class T>
binder1st<Operation> bind1st (const Operation& op, const T& x)
{
return binder1st<Operation>(op, typename Operation::first_argument_type(x));
}
|
要将第二个参数绑定到特定值,请参阅
bind2nd。
参数
- op
- 派生自 binary_function 的二进制函数对象。
- x
- op 的第一个参数的固定值。
返回值
等效于
op但第一个参数始终设置为
x的一元函数对象。
binder1st 是派生自
unary_function 的类型。
示例
1 2 3 4 5 6 7 8 9 10 11 12 13
|
// bind1st example
#include <iostream>
#include <functional>
#include <algorithm>
using namespace std;
int main () {
int numbers[] = {10,20,30,40,50,10};
int cx;
cx = count_if (numbers, numbers+6, bind1st(equal_to<int>(),10) );
cout << "There are " << cx << " elements that are equal to 10.\n";
return 0;
}
|
There are 2 elements that are equal to 10.
|
另见
- bind2nd
- 返回第二个参数被绑定的函数对象 (函数模板)
- binder1st
- 生成第一个参数被绑定的函数对象类 (类模板)
- unary_function
- 一元函数对象基类 (类模板)
- binary_function
- 二元函数对象基类 (类模板)