SGI

unary_compose<AdaptableUnaryFunction1, AdaptableUnaryFunction2>

类别: 函子, 适配器 组件类型: 类型

描述

Unary_compose函数对象 适配器。如果fg都是 可适应的单参数函数,并且如果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

,以及将度转换为弧度。 描述 定义
定义在标准头文件 functional 中,以及非标准向后兼容性头文件 function.h 中。该 类是 SGI 扩展;它不是 C++ 标准的一部分。模板参数 参数定义在标准头文件 functional 中,以及非标准向后兼容性头文件 function.h 中。该默认值f.  
AdaptableUnaryFunction1 函数组合操作中第一个操作数的类型。 也就是说,如果组合写成模板参数 参数定义在标准头文件 functional 中,以及非标准向后兼容性头文件 function.h 中。该默认值g.  

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_typefg公共基类定义在标准头文件 functional 中,以及非标准向后兼容性头文件 function.h 中。该AdaptableUnaryFunction1成员成员定义位置argument_type函数对象的 аргумент 的类型

AdaptableUnaryFunction2::argument_type

result_typef结果的类型模板参数AdaptableUnaryFunction1::result_type模板参数参见下文。新成员这些成员没有在 可适应的单参数函数 需求中定义,但特定于

unary_compose

构造函数。 构造一个unary_compose, 对象,它表示函数对象, f o g.
[Silicon Surf] [STL Home]
。 创建一个 unary_compose