陣列高階知識適合收藏~在陣列基礎知識上進一步提公升和鞏固
(前提是:每行中的列數要相等)
下面用**舉例說明
int row =
2, colums =3;
int nums;
//一維陣列
for(
int i =
0; i < row; i++
) cout << endl;
}
要給定陣列的行數、列數,可以只給定二維陣列列數(不給定行數),不能只給定陣列行數,而不給定列數
正確示範:
int nums[2]
[3];
int nums[
3];錯誤示範:
int nums[3]
;
不同行的記憶體空間不一定連續
釋放記憶體時,需要先釋放各個元素指向的記憶體,最後釋放指標陣列名指向的記憶體(層層釋放)
動態陣列釋放後還會有個陣列名位址(指標)的位元組符大小
求陣列大小的函式的時候必須將陣列引用傳遞!否則陣列會退化為乙個指標,無法正確的使用sizeof運算子求出陣列所佔記憶體空間大小
int
**nums =
newint*[
10];//申請了乙個 int* 型別的10行空間
for(
int i =
0; i <
10; i++
)//釋放空間
for(
int i =
0; i <
10; i++
)delete
nums[i]
;delete
nums;
1.建立二維陣列如以下**
vector
int>
>
a(rows, vector<
int>columns)
;for
(int i =
0; j < rows; i++
)}
2.建立多維陣列(n維)如下**實現
int nx=
2100
, ny=
500, nz=
200;
vector
float
>
>
>
threedimensionarray
(nz,vector
float
>
>
(ny,vector<
float
>
(nx,0)
));for
(int z=
0;z}
3.給vector建立的陣列開闢空間 / 賦初值
vector<
int>
(n)//是指開了n個空間,你也可以帶上初值 vectot(n,1)
4.vector陣列的區間遍歷(二維陣列)
特別注意:雙重迴圈時變數型別必須是auto
#include
#include
using
namespace std;
vector
int>> a,,
};for(
auto
& rows : a)
int
* p1[10]
;//為指標陣列,10個都為int*型別的指標
int(
*p2)[10
];//為陣列指標,這個陣列是匿名陣列,p2指向乙個包含10個int型別的陣列
路漫漫其修遠兮,吾將上下而求索 php高階篇 1 陣列
陣列分為索引陣列和關聯陣列。建立乙個索引陣列,索引陣列的鍵是 0 值是 蘋果 fruit array 蘋果 print r fruit 第一種 用陣列變數的名字後面跟乙個中括號的方式賦值,當然,索引陣列中,中括號內的鍵一定是整數。比如,arr 0 蘋果 第二種 用array 建立乙個空陣列,使用 符...
C 高階陣列
include include include c 的標準庫 include c 字串 using std vector 動態陣列,堆上 using std array 靜態陣列,棧上 using std string 使用c 風格的陣列不需要管理記憶體 array注意不要溢位 array適用於任何...
C 高階陣列
include include include include stdio.h 陣列 元素型別角度 陣列是相同型別的變數有序集合,記憶體角度 聯絡一大片記憶體空間 陣列名陣列首元素的起始位址,但並不是陣列的起始位址 c是陣列首元素的位址c 1 步長4個位元組 c 是整個陣列的位址 1 步長200個位...