一維,二維,三維陣列,vector 初始化

2022-06-13 06:06:08 字數 1482 閱讀 2911

1. 用memset初始化陣列:

1)按照位元組賦值

2)標頭檔案在中

注:由於memset函式是按照位元組賦值的,所以對int型陣列用該函式時,只能是0或-1,否則會出錯,這裡,不管陣列是多少維的,語法均為:

int dp[84][84][84][2

]; memset(dp,

0, sizeof(dp)); //

只能賦值0或-1

2.  fill 初始化vector和陣列:

1)按照變數型別單元賦值,將區間 [first, end) 中的每個單元都賦為同乙個值。

2)標頭檔案在中

//

fill algorithm example

#include //

std::cout

#include //

std::fill

#include //

std::vector

intmain ()

直接給一維陣列賦值:

int a[4] = ;

fill(a, a+2, 284

);

//284 284 1 1

要給多維陣列賦值時,這裡的區間[first, end)都是指標位址,並且是一維的,由於多維陣列在記憶體空間中連續性,可將(int ****)的變數型別dp轉化為(int *)型別,得到了dp的首位址,然後按照其區間給其賦值。

參看如下賦值方法:

int dp[84][84][84][2

]; fill((

int*)dp, (int*)dp + 84 * 84 * 84 * 2, 0);

也可以這樣將二維陣列賦值:

int dp[84][84

]; fill(dp[

0], dp[0] + 84 * 84 , 0);

3. vector 初始化:

1) 在定義v2時初始化:以下兩種方式等價 ,v2 初始化為 v1 的拷貝,兩者的必須型別相同,也就是同為int的vector型別,v2將具有和v1相同的容量和元素。

vector v2(v1);

vector v2  = v1;

2)將v1的某段複製給v2:

vector v2(v1.begin()+2,v1.end());

int a[5] = ;

//通過陣列a的位址初始化,注意位址是從0到5(左閉右開區間)

vector b(a, a+5);

3) 指定值初始化,ilist5被初始化為包含7個值為3的int

vector ilist5(7,3);

4) 初始化二維vector為n行m列,值為0:

vectorint>> v(n, vector(m, 0));

二維數 三維陣列

二維陣列 2017 11 10 對比 1 概念 一維陣列 存貯一組相同型別資料 二維陣列 存貯著多個一維陣列 類推 三維陣列 存貯著多個二維陣列 2 宣告 一維陣列 陣列型別 陣列名 初始值 int arr01 int arr00 new int 5 二維陣列 陣列型別 陣列名 初值 陣列型別為一維...

陣列(Array),二維陣列,三維陣列

陣列 array 相同型別資料的集合就叫做陣列。一 定義陣列的方法 a type 變數名 new type 陣列中元素的個數 例如 int a new int 10 或者 int a new int 10 b type 變數名 new type 例如 int a new int 二 陣列的lengt...

如何建立二維三維陣列

ps 一維陣列是指標,可將二維陣列看作是指標的指標 每一行是乙個一維陣列,而列是指向行的指標。在動態建立時,先分配指向行的指標空間,再迴圈維每一行申請空間。二維 建立 int p p new int x 行 申請行的空間 每行的列申請空間 for i 0 i三維 建立 int p3 p3 new i...