设为首页 加入收藏

TOP

成员函数的函数配接器
2015-07-20 17:56:31 来源: 作者: 【 】 浏览:1
Tags:成员 函数

在STL标准库中除了提供常规的函数配接器外,还提供了两个针对成员函数的函数配接器,其主要功能是通过这些配接器,你可以针对每一个元素直接去调用其成员函数。

这样的成员函数配接器有两个,分别是:

mem_fun_ref(op) 调用对象的成员函数op

mem_fun(op) 调用对象指针的成员函数op

这两个函数配接器都是去调用对象中的成员函数op,对于这两个成员函数,以前是只能调用对象的const成员函数,但现在的情况好像有所改变,对所有的成员函数都可以调用了。

具体的示例如下:

#include
  
   
#include
   
     #include
    
      #include
     
       #include
      
        using namespace std; class A { public: A(int b):a(b){} ~A(){} void mfun() { ostream_iterator
       
        (cout,"--") = ++a; } private: int a; }; int main() { deque
        de; for(int i = 0;i<5;i++) de.push_back(A(i)); for_each(de.begin(),de.end(),mem_fun_ref(&A::mfun)); cout<
         
          de2; for(int i = 0;i<5;i++) de2.push_back(new A(i)); for_each(de2.begin(),de2.end(),mem_fun(&A::mfun)); /* 1--2--3--4--5-- 1--2--3--4--5--请按任意键继续. . . */ }
         
       
      
     
    
   
  

使用注意:

一、通过该类配接器调用的成员函数必须要在对象的类型中存在。

二、这两个配接器的参数都必须是传递该类型中成员函数的偏移量,不能直接传递函数名。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇LeetCode:Sort List 下一篇uva 1541 - To Bet or Not To Bet..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: