簡體   English   中英

如何用兩個點和步驟之間的元素初始化向量C ++

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

我將初始化一個向量,該向量以已知的步長在兩個數字之間均勻縮放。 像這樣的偽代碼。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM