第十五周项目—阅读程序(4)

来源:互联网 发布:林弯弯的淘宝店铺名字 编辑:程序博客网 时间:2024/05/01 05:48
/**Copyright(c) 2016.烟台大学计算机与控制工程学院*ALL rights  reserved.*文件名称:test.cpp*作者:杨驰*完成日期:2016年6月5*问题描述:阅读下面的程序*/#include <algorithm>#include <functional>#include <iostream>#include <vector>#include <iterator>using namespace std;class myAdd: public binary_function<int,int,int>{public:    int operator()(int a, int b) const    {        return a+b;    }};int main(){    int a[5]= {1,2,3,4,5};    vector<int> my(5);    transform(a,a+5,my.begin(), bind2nd(myAdd(), 4));    copy(my.begin(), my.end(), ostream_iterator<int>(cout, " "));    cout<<endl;    transform(a,a+5,a,my.begin(), myAdd());    copy(my.begin(), my.end(), ostream_iterator<int>(cout, " "));    cout<<endl;    return 0;}

运行结果:

知识总结:

                   STL 标准库中的函数适配器辅助说明、

适配器辅助函数                                                 功能说明

     bind1st                                        通过绑定第一个参数,使二元的函数对象转化为一元的函数对象
     bind2nd                                       通过绑定第二个参数,使二元的函数对象转化为一元的函数对象
     not1                                             对一元的函数对象取反
     not2                                             对二元的函数对象取反

使用的方式:
bind1st( less<int>(), 10)(20);
not2( less<int() )(10,20);


0 0
原创粉丝点击