毁三观的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++的代码会越来越短,开发速度越来越快!!

你可能感兴趣的:(毁三观的C++:牛逼碉堡的lambda)