std iota實現遞增序列(c 11新增)

2021-10-02 00:00:13 字數 1245 閱讀 3634

原生陣列和vector、array都不支援構造乙個遞增的陣列,比如乙個包含0~999的size為1000的陣列。

int ids[

1000]=

;for

(int i =

0; i <

1000

;++i)

如果是std::vector,則是:

std::vector<

int> ids;

ids.

resize

(1000);

for(

int i =

0; i <

1000

;++i)

也有人用使用lambda表示式來實現

現在介紹c++11新增的std::iota,需要包含標頭檔案numeric

可能的實現:

官方文件:

template

<

class

forwarditerator

,class

t>

void

iota

(forwarditerator first, forwarditerator last, t value)

}

使用舉例

#include

#include

#include

#include

intmain()

//或者用下面的一句話輸出ivec中內容

std::

copy

(ivec.

begin()

, ivec.

end(

), std::ostream_iterator<

int>

(std::cout,

" "));

getchar()

;return0;

}

std::

iota

(ivec.

begin()

, ivec.

end(),

4);

std::iota的第三個引數是初值,後面的依次將++value賦值給相應的元素。

參考:小二,給我來乙個遞增序列

vector的幾種初始化及賦值方式

c++如何構造乙個遞增的vector陣列

快速入門C 1

大家最為熟悉的就是各種hello world了吧 今天我們就從這裡開始講解 include iostream using namespace std int main include 包含 引用 所以吶,這就是引用庫之類的標頭檔案 h iostream是指iostream庫,iostream的意思是...

子串行1 最長遞增子串行

子串行問題本來就比子串和子陣列要難,因為子串行是不連續的,窮舉困難,而且子串行一般涉及兩個字串,一般來說都是讓求乙個最長子序列,涉及子串行和最值,那一定是動態規劃,o n2 1.定義dp陣列有兩種思路,第一種是乙個一維的dp陣列,兩次for迴圈來解決,dp i 的含義是在array陣列中,以arra...

C 1 資料型別

分為兩類 1.基本資料型別 2.引用資料型別 基本資料型別 1整數型 有負數的 sbyte,short int long 正整數 byte,ushort,uint,ulong 可能會表現的不夠形象,看下圖 2.浮點數 float 適用於較小的浮點數 在後面加f 例 float a 1.0f 單精度 ...