stl 学习笔记 8 续 (function object)

来源:互联网 发布:孙尚香出装 知乎 编辑:程序博客网 时间:2024/06/09 17:09

function object 续

//stl/fo1.cpp

/*
预先定义好的  function object

*/

#include 
<iostream>
#include 
<set>
#include 
<deque>
#include 
<algorithm>
#include 
"print.h"
using namespace std;

int main()
{
    
set<int,greater<int> > coll1;
    deque
<int> coll2;

    
for(int i = 1; i<=9;++i)
        coll1.insert(i);

    PRINT_ELEMENTS(coll1,
"initialized: ");

    
// bind2nd
    
// function adaptors
    transform(coll1.begin(),coll1.end(),
        back_inserter(coll2),bind2nd(multiplies
<int>(),10));

    PRINT_ELEMENTS(coll2,
"transformed: ");

    
// replace_if (algorithm)
    replace_if(coll2.begin(),coll2.end(),
        bind2nd(equal_to
<int>(),70),42);

    PRINT_ELEMENTS(coll2,
"replaced: ");

    coll2.erase(remove_if(coll2.begin(),coll2.end(),
        bind2nd(less
<int>(),50)),coll2.end());

    
// less<> function object
    PRINT_ELEMENTS(coll2,"removed: ");
}
 
原创粉丝点击