|
发表于 2017-4-22 11:04:59
|
显示全部楼层
本楼为最佳答案
- #include <list>
- #include <algorithm>
- #include <iterator>
- #include <iostream>
- class IntSeq
- {
- private:
- int x0;
- public:
- IntSeq(int x) { x0 = x;}
- int operator()() const
- {
- return x0++;
- // 此函数对象就有了状态的意味
- }
- };
- std::list<int> range(int first, int end)
- {
- std::list<int> coll;
- std::generate_n(std::back_inserter(coll), end-first, IntSeq(first));
- return coll;
- }
- int main(int, char**)
- {
- std::list<set> coll = range(0, 10);
- for (auto elem: coll):
- std::cout << elem << " ";
- std::cout << std::endl;
- // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
- return 0;
- }
复制代码 |
|