什么相当于Mathematica的C++中的Range []函数?

Bil*_*ina 8 c++

Mathematica有一个名为的函数Range[],它执行以下操作:

Range[0, 10]
Range[-10, 0]
Run Code Online (Sandbox Code Playgroud)

Ant打印:

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
{-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0}
Run Code Online (Sandbox Code Playgroud)

C++有这样的功能吗?

Jes*_*ood 9

标准库中没有,但来自boost::range:

#include <iostream>
#include <iterator>
#include <boost/range/irange.hpp>
#include <boost/range/algorithm/copy.hpp>

int main()
{
    boost::copy(boost::irange(0, 11), 
                std::ostream_iterator<int>(std::cout, " "));
}
Run Code Online (Sandbox Code Playgroud)

输出:0 1 2 3 4 5 6 7 8 9 10


Lil*_*ard 7

似乎很容易创建一个.

std::vector<int> range(int from, int to) {
    std::vector<int> result;
    result.reserve(to-from+1);
    for (int i = from; i <= to; ++i) {
        result.push_back(i);
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)