当前位置:  开发笔记 > 编程语言 > 正文

c ++提升lambda库

如何解决《c++提升lambda库》经验,为你挑选了1个好方法。

什么是使用boost lambda库开始编程的最佳方法.



1> 小智..:

保留在C++语言和库的边界内,我建议首先习惯使用STL算法函数模板进行编程,因为boost :: lambda最常见的用途是用内联的内联表达式替换functor类.

库文档本身为您提供了一个前期示例:

for_each(a.begin(), a.end(), std::cout << _1 << ' ');

其中std::cout << _1 << ' '生成一个函数对象,在调用时,将其第一个参数写入cout流中.这是你可以用自定义函子类std::ostream_iterator或显式循环来做的事情,但是boost :: lambda在简洁性和可能的​​清晰度方面胜出 - 至少如果你习惯了函数式编程概念.

当你(过度)使用STL时,你会发现自己倾向于使用boost :: bind和boost :: lambda.它非常方便,例如:

std::sort( c.begin(), c.end(), bind(&Foo::x, _1) < bind(&Foo::x, _2) );

在你达到这一点之前,不要那么多.因此,使用STL算法,编写自己的仿函数,然后使用boost :: lambda将它们转换为内联表达式.

从专业的角度来看,我认为开始使用boost :: lambda的最佳方法是使用boost :: bind来理解和接受.在boost :: bind表达式中使用占位符看起来不如"裸"boost :: lambda占位符那么神奇,并且在代码审查期间更容易接受.超越基本的提升:: lambda使用很可能让你的同事感到悲伤,除非你在一个前沿的C++商店.

尽量不要走极端-那里其中一个,当时间和地点for-loop 真的是正确的解决方案.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有