请输入您要查询的百科知识:

 

词条 STL约束器
释义

本身属于适配器,依赖于STL函数对象基类:unary_function,binary_function.

STL约束器:属于某种函数对象,通过将一个参数约束到某个值,使我们可以将两个参数的函数对象当做一个参数的函数对象来使用。这种通过约束一个参数而形成的组合是很常见,很有用的,也是很少令人生厌的,标准库专门提供了一个专门的标准类来支持做到这一点。

template<class BinOp>

class binder2nd

:public unary_function<typename BinOp::first_argument_type,

typename BinOp::result_type>{

protected:

BinOp op;

typename BinOp::second_argument_type arg2;

public:

binder2nd(const BinOp&x,const typenmae BinOp::second_argument_type&v)

:op(x),arg2(v){}

result_type operator()(const argument_type&x )const {return op(x,arg2);}

};

template<class BinOp,class T> binder2nd<BinOp>bind2nd(const BinOp&op,const T&v)

{

return binder2nd<BinOp>(op,v);

}

以上的binder2nd本身也是要当做一个一元谓词来使用的。它在 将一个拥有两个参数的函数对象B 约束其中一个参数的过程中起到一个桥梁作用。在起这个作用的过程中,它的两个参数作为输入,其中一个输入提供实际需要用到得 含有两个参数的函数对象B,另外一个参数为 这个B提供那个受控的参数值。

而罪恶的一切 都由result_type operator()(const argument_type&x )const {return op(x,arg2);}

这句来完成的。最终将完成将 含两个参数的函数对象B当做含一个参数的函数对象使用。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/11 11:27:42