码迷,mamicode.com
首页 > 其他好文 > 详细

transform 函数测试

时间:2015-03-11 19:40:30      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;


// 自定义泛函数
template <class T>
void PRINT_ELEMENTS(const T& coll, const char * str="")
{
    typename T::const_iterator pos;
    
    cout<<str<<endl;
    for(pos = coll.begin(); pos != coll.end(); ++pos)
    {
        cout<<*pos<<" ";    
    }
    cout<<endl;
}


// 以函数作为算法的参数
int square(int data)
{
    return data*data;    
}


int main(int argc, char** argv)
{
    vector<int> coll;
    
    set<int> IntSet;
    for(int i=1; i<11; ++i)
    {
        IntSet.insert(i);    
    }
    PRINT_ELEMENTS(IntSet, "Set original data:");
    
    std::transform(IntSet.begin(), IntSet.end(), // source 源地址
                                std::back_inserter(coll), // destination 目标地址
                                square); // 以函数作为算法的参数
    PRINT_ELEMENTS(coll, "after square:");

    return 0;    
}

结果输出:

Set original data:
1 2 3 4 5 6 7 8 9 10
after square:
1 4 9 16 25 36 49 64 81 100

transform 函数测试

标签:

原文地址:http://www.cnblogs.com/sylar-liang/p/4330620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!