毁三观的C++:牛逼碉堡的lambda

大家都知道java和C#有for each这个命令吧,这个命令十分好用

for each(单个元素 it in 容器)

{

每个元素的操作;

}


昨天看了boost库的lambda和一些博客,瞬间毁掉我对C++的看法,原来用了lambda,这些功能可以轻松实现!!

比如显示vector容器vec的数据,然后加上4,再全部显示,正规代码这样写:

std::copy(vec.begin(), vec.end(), ostream_iterator<int>(std::cout , " "));

std::transform(vec.begin(), vec.end(),std::bind1st(std::plus<int>(),4));

std::copy(vec.begin(), vec.end(), ostream_iterator<int>(std::cout , " "));


现在改写如下,更加简单

using namespace boost::lambda;

std::for_each(vec.begin(), vec.end(), cout << _1 << " ");

std::for_each(vec.begin(), vec.end(), _1 = _1 +4);

std::for_each(vec.begin(), vec.end(), cout << _1 << " ");


简单了好多有木有!话说新标准加入了lambda,比boost的lambda好用多了,闭包、函数式编程都加进来了。

总之一句话就是C++的代码会越来越短,开发速度越来越快!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值