在没有boost :: counting_iterator的情况下插入一系列连续整数的最佳方法

时间:2015-03-11 06:41:33

标签: c++ iterator containers std

在没有boost :: counting_iterator的情况下插入一系列连续整数的最佳方法是什么。[c ++]

    // Insert 1 to 9
    set<long> set1.insert(boost::counting_iterator<int>(1)
                          ,boost::counting_iterator<int>(10))

2 个答案:

答案 0 :(得分:1)

调用for的范围内的insert循环正常工作,并且使代码易于维护。

答案 1 :(得分:0)

您可以使用:

std::set<long> s;
long l = 0;
std::generate_n(std::inserter(s, s.end()), 9, [&]{ return ++l; });

或简单循环:

std::set<long> s;
for (long i = 1; i != 10; ++i) {
    s.insert(i);
}