【boost】使用lambda表达式和generate_n生成顺序序列

程序中经常用到顺序序列(0,1,2,3,4,5,6.。。。。),一直羡慕python有range这样的函数,而C++中通常只有用循环来处理这种初始化。

现在,结合boost库lambda(虽然差C++11的几条街),我们也可以写出这样的初始化函数:

    deque<int> coll1;
    int first=0;
    //将coll1初始化为0-9,first需要使用var适配lambda
    generate_n(back_inserter(coll1), 10, var(first)++);

结合lambda,你几乎可以以这种极优雅的方式写出绝大部分初始化函数

posted on 2013-07-31 22:18  小水坝  阅读(668)  评论(2编辑  收藏  举报

导航