Function object
来源:互联网 发布:淘宝网页点击没反应 编辑:程序博客网 时间:2024/04/30 19:32
http://en.wikipedia.org/wiki/Function_object
#include <iostream>#include <vector>#include <algorithm>#include <functional>using namespace std;class functor {public: void operator()(int k) { cout << "k = " << k << '\n'; }};struct inc { int operator()(int k) { return k + 1; }};struct times { int operator()(int a, int b) { return a * b; }};void output(int a) { cout << a << endl;}int main() { vector<int> v; for (int i = 0; i < 5; ++i) { int t; cin >> t; v.push_back(t); } for_each(v.begin(), v.end(), functor()); for_each(v.begin(), v.end(), output); for_each(v.begin(), v.end(), [](int k) { cout << k; }); // anonymous function objects puts(""); vector<int> v1(v.size()); transform(v.begin(), v.end(), v1.begin(), inc()); for_each(v1.begin(), v1.end(), output); vector<int> v2(v.size()); transform(v.begin(), v.end(), v1.rbegin(), v2.begin(), times()); for_each(v2.begin(), v2.end(), functor()); vector<int> v3(v.size()); transform(v.begin(), v.end(), v1.begin(), v3.begin(), multiplies<int>()); // STL default function objects for_each(v3.begin(), v3.end(), output); system("pause"); return 0;}
running result:
3 4 5 6 7k = 3k = 4k = 5k = 6k = 7345673456745678k = 24k = 28k = 30k = 30k = 281220304256
- Function Object
- function object
- Function object
- Function object
- function object
- function object
- Function Object & Function Object Adapters
- Function Object & Function Object Adapters
- functor(function object)
- C++中的function object
- C++中的function object
- Function object And Binders
- function object (functor) (1)
- Function & Object 区别
- c++中的function object
- 函数对象 function object
- funciton object & function pointer
- function object研究之一
- C++操作符优先级
- C#日期格式转换大全
- AS3之解析XML
- 经纬度转换
- oracle进程说明
- Function object
- ORACLE CTAS(create table as select)使用注意点
- 系统基础考虑-与用户相关
- 库存---历史结存量计算方法
- android MediaScanner详解
- 位操作
- HEW3工程链接错误(L2330 (E) Relocation size overflow )及解决
- silverlgiht DataGird行颜色转换
- 自定义堆栈(回文检测)