unary_compose<AdaptableUnaryFunction1, AdaptableUnaryFunction2>
描述
Unary_compose是 函数对象 适配器。如果f和g都是 可适应的单参数函数,并且如果ggf的返回值类型可以转换为f的参数类型,那么unary_compose可以用于创建函数对象h使得h(x)与ff(g(x))相同。 [1] 与其他函数对象适配器一样,创建unary_composef最简单的方法是使用辅助函数compose1
。 可以直接调用unary_compose的构造函数,但通常没有必要这样做。unary_compose示例vector<double> angles;
vector<double> sines;
const double pi = 3.14159265358979323846;
...
assert(sines.size() >= angles.size());
transform(angles.begin(), angles.end(), sines.begin(),
compose1(negate<double>(),
compose1(ptr_fun(sin),
bind2nd(multiplies<double>(), pi / 180.))));
计算向量中元素的正弦值的负值,其中元素是以度为单位测量的角度。 由于 C 库函数
sinf以弧度为单位接收其参数,因此此操作是三个操作的组合:取负,sin
f o g
[1],那么
AdaptableUnaryFunction1
定义在标准头文件 functional 中,以及非标准向后兼容性头文件 function.h 中。该和AdaptableUnaryFunction1是函数对象f的类型AdaptableUnaryFunction2.
函数组合操作中第二个操作数的类型。 也就是说,如果组合写成
unary_function<AdaptableUnaryFunction2::argument_type,
AdaptableUnaryFunction1::result_type>
f o g
[1],那么 |
AdaptableUnaryFunction2 |
描述 |
是函数对象
|
[1],那么
|
g的类型.
|
模型
|
[1],那么
|
可适应的单参数函数类型要求
|
unary_compose(const AdaptableUnaryFunction1& f,
const AdaptableUnaryFunction2& g);
|
f
|
AdaptableUnaryFunction1 |
template <class AdaptableUnaryFunction1, class AdaptableUnaryFunction2>
unary_compose<AdaptableUnaryFunction1, AdaptableUnaryFunction2>
compose1(const AdaptableUnaryFunction1& op1,
const AdaptableUnaryFunction2& op2);
|
f
|
AdaptableUnaryFunction1 |
和
AdaptableUnaryFunction2f.
[1],那么 |
描述 |
unary_compose(const AdaptableUnaryFunction1& f,
const AdaptableUnaryFunction2& g);
|
都必须是 可适应的单参数函数 的模型。fAdaptableUnaryFunction2::result_type模板参数. [1]
|
template <class AdaptableUnaryFunction1, class AdaptableUnaryFunction2>
unary_compose<AdaptableUnaryFunction1, AdaptableUnaryFunction2>
compose1(const AdaptableUnaryFunction1& op1,
const AdaptableUnaryFunction2& op2);
|
必须可以转换为fAdaptableUnaryFunction1::argument_typef和g公共基类定义在标准头文件 functional 中,以及非标准向后兼容性头文件 function.h 中。该和AdaptableUnaryFunction1成员成员定义位置argument_type函数对象的 аргумент 的类型 |
AdaptableUnaryFunction2::argument_type
result_typef结果的类型模板参数AdaptableUnaryFunction1::result_type模板参数参见下文。新成员这些成员没有在 可适应的单参数函数 需求中定义,但特定于
unary_compose
构造函数。 构造一个unary_compose,
对象,它表示函数对象, f o g.
。 创建一个
unary_compose