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

时间:2021-08-17 16:31:50

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

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

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

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