首页 新闻 会员 周边

C++STL谓词函数能不能匿名吗?比如类似python的lamba

0
[已解决问题] 解决于 2010-09-25 12:50

如下,在一个工程中我调用STL的一些算法函数,然后又定义了若干谓词函数。感觉谓词函数放在工程里面,把整个类的架构都弄乱了,破坏了程序的可读性。那么谓词函数除了用模板定义的方法简化,有没有其他的办法?比如在调用谓词函数的函数中写个匿名函数体,python 实现相似的功能就是用lamba实现的,C++有没有?

 

bool isLonger(const pair &pair1, const pair &pair2) { return pair1.second>pair2.second; }

bool isLarger(const pair &pair1, const pair &pair2) { return pair1.second>pair2.second; }

bool isLarger2(const pair &pair1,const pair&pair2) { return pair1.second>pair2.second; }

bool cntAssist(const pair &pair1) { return pair1.second<=100; }

bool PredTF(const pair& pair1,int articleId) { return pair1.first==articleId; } class PredTFclass { private: const int m; public: PredTFclass(int id):m(id){}; bool operator()(const pair& pair1){return PredTF(pair1,m);}; };

class GT_cls { public: GT_cls(string &s):comparepart(s){} bool operator()(const string &elem) { return elem==comparepart; } private: string comparepart; };

bool myCmp(const pair&pair1,const pair&pair2 ) { return pair1.second>=pair2.second; }

如上,在一个工程中我调用STL的一些算法函数,然后又定义了若干谓词函数。感觉谓词函数放在工程里面,把整个类的架构都弄乱了,破坏了程序的可读性。那么谓词函数除了用模板定义的方法简化,有没有其他的办法?比如在调用谓词函数的函数中写个匿名函数体,python 实现相似的功能就是用lamba实现的,C++有没有?

finallyly的主页 finallyly | 初学一级 | 园豆:100
提问于:2010-09-25 11:06
< >
分享
最佳答案
0

现行的C++标准中没有lambda. 在即将来到的C++0x标准中会加入lambda的支持http://en.wikipedia.org/wiki/C%2B%2B0x#Lambda_functions_and_expressions

嗷嗷 | 小虾三级 |园豆:757 | 2010-09-25 12:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册