mem_fun和bind2nd的用法例子
2012-01-28 22:42
363 查看
#include<iostream> #include<algorithm> #include<vector> using namespace std; class Widget:public unary_function<int,void> { int id; public: Widget(int x):id(x){} void Multiply(int x) const { cout<<"id:"<<id<<" "<<id*x<<endl; } void Output() const { cout<<"id:"<<id<<endl; } }; class Operation:public binary_function<Widget*,int,void> { public: void operator()(Widget *wid,int x) const { wid->Multiply(x); } }; int main() { vector<Widget*> vecs; vecs.push_back(new Widget(1)); vecs.push_back(new Widget(2)); vecs.push_back(new Widget(3)); vecs.push_back(new Widget(4)); vecs.push_back(new Widget(5)); //for_each(vecs.begin(),vecs.end(),mem_fun_ref(&Widget::Multiply)); //for_each(vecs.begin(),vecs.end(),bind2nd(Operation(),4)); //for_each(vecs.begin(),vecs.end(),bind2nd(mem_fun(&Widget::Multiply),4)); const_mem_fun1_t<void,Widget,int> fun=mem_fun(&Widget::Multiply); fun(vecs[1],5); const_mem_fun_t<void,Widget> fun2=mem_fun(&Widget::Output); fun2(vecs[2]); }
相关文章推荐
- C++ mem_fun 和 mem_fun_ref 的用法
- C++之STL(九):函数适配器bind2nd 、mem_fun_ref 源码分析、函数适配器应用举例
- STL中mem_fun和mem_fun_ref的用法
- C++ mem_fun 和 mem_fun_ref 的用法
- STL中mem_fun和mem_fun_ref的用法
- STL中mem_fun和mem_fun_ref的用法
- STL中mem_fun和mem_fun_ref的用法
- STL中mem_fun和mem_fun_ref的用法
- mem_fun的用法,以及使用wcout
- STL中mem_fun和mem_fun_ref的用法
- 函数适配器bind2nd 、mem_fun_ref 源码分析、函数适配器应用举例
- 【STL】函数 for_each; bind1st和bind2nd,not1; mem_fun和mem_fun_ref;
- STL中mem_fun, mem_fun_ref用法
- STL中mem_fun和mem_fun_ref的用法 收藏
- STL中mem_fun和mem_fun_ref的用法
- STL中mem_fun和mem_fun_ref的用法
- STL 中 mem_fun 和 mem_fun_ref 的用法
- STL中mem_fun和mem_fun_ref的用法及区别
- for_each调用类成员函数,mem_fun, mem_fun_ref用法
- STL(九):函数适配器bind2nd 、mem_fun_ref 源码分析、函数适配器应用举例