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...