首页 > 代码库 > mem_fun 例子
mem_fun 例子
// functional_mem_fun.cpp// compile with: /EHsc#include <vector>#include <functional>#include <algorithm>#include <iostream>#include <ext/functional>using namespace std;class StoreVals { int val;public: StoreVals() { val = 0; } StoreVals(int j) { val = j; } bool display() { cout << val << " "; return true; } int squareval() { val *= val; return val; } int lessconst(int k) {val -= k; return val; }};int main( ){ vector<StoreVals *> v1; StoreVals sv1(5); v1.push_back(&sv1); StoreVals sv2(10); v1.push_back(&sv2); StoreVals sv3(15); v1.push_back(&sv3); StoreVals sv4(20); v1.push_back(&sv4); StoreVals sv5(25); v1.push_back(&sv5); cout << "The original values stored are: " ; for_each(v1.begin(), v1.end(), mem_fun<bool, StoreVals>(&StoreVals::display)); cout << endl; // Use of mem_fun calling member function through a pointer // square each value in the vector using squareval () for_each(v1.begin(), v1.end(), mem_fun<int, StoreVals>(&StoreVals::squareval)); cout << "The squared values are: " ; for_each(v1.begin(), v1.end(), mem_fun<bool, StoreVals>(&StoreVals::display)); cout << endl; // Use of mem_fun1 calling member function through a pointer // subtract 5 from each value in the vector using lessconst () for_each(v1.begin(), v1.end(), bind2nd (__gnu_cxx::mem_fun1<int, StoreVals,int>(&StoreVals::lessconst), 5)); cout << "The squared values less 5 are: " ; for_each(v1.begin(), v1.end(), mem_fun<bool, StoreVals>(&StoreVals::display)); cout << endl;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。