如何使用两点和步骤 c++ 之间的元素初始化向量

How to initialize a vector with elements between two point and step c++

本文关键字:之间 c++ 元素 向量 初始化 何使用 两点      更新时间:2023-10-16

我将初始化一个向量,该向量使元素在具有已知步骤的两个数字之间均匀缩放。 像这个伪代码。

typedef vector<double> a(startnumber, step, endnumber);

例如

vector<double> a(1, 1, 10); // a = {1, 2, ...., 10};

有什么方法可以在 c++ 中做到这一点吗?

当然:

template <typename T>
std::vector<T> createRange(T start, T end, T step)
{
    std::vector<T> result;
    for (; start < end; start += step) {
        result.push_back(start);
    }
    return result;
}

其他任何事情都更复杂,但没有真正更好(例如,具有iota()generate()的东西)。这仅在step> 0 时才有效。如果您希望它适用于负步骤,则必须打开标志以在这种情况下检查start > end