要加乙個空格。
vector
int>> a;
//錯誤的定義方式
vector
int>
> a;
//正確的定義方式
二維陣列是我們假象的,其實是連續的記憶體位址。
現在若想定義a = [ [0,1,2] , [3,4,5] , [2,3,9] , [6,1,10] ],則:
//正確的插入方式
vector
int>
> a;
裡必須是vector
vector<
int> b;
b.push_back(0
);b.push_back(1
);b.push_back(2
);a.push_back
(b);
b.clear()
;//清空b
b.push_back(3
);b.push_back(4
);b.push_back(5
);a.push_back
(b);
b.clear()
;//清空b
b.push_back(2
);b.push_back(3
);b.push_back(9
);a.push_back
(b);
b.clear()
;//清空b
b.push_back(6
);b.push_back(1
);b.push_back(10
);a.push_back
(b);
b.clear()
;
//錯誤的插入方式
vector
int>
> a;a[0
].push_back(0
);a[0
].push_back(1
);a[0
].push_back(2
);a[1
].push_back(3
);a[1
].push_back(4
);a[1
].push_back(5
);a[2
].push_back(2
);a[2
].push_back(3
);a[2
].push_back(9
);a[3
].push_back(6
);a[3
].push_back(1
);a[3
].push_back(10
);
//vector>a中的vector元素的個數
len = a.
size()
;//vector>a中第i個vector元素的長度
len = a[i]
.size()
;
訪問某元素時,方法和二維陣列相同,例如:
//根據前面的插入,可知輸出5
printf
("%d\n"
, a[1]
[2])
;
一維向量的排序我們都會,可以自定義cmp函式或less/greater來告訴編譯器我們想要的排序順序。
//按第一列降序,descending order by first column
//按第二列降序,descending order by second column
c 中二維陣列與二維向量的長度
對於乙個二維陣列 int mm 3 5 int toatlnums sizeof mm sizeof int 元素總個數 int cols sizeof mm 0 sizeof int 行 int raws totalnums cols 列對於乙個二維向量 vector matrix int raw...
C 中二維陣列
一 為什麼要使用多維陣列 生活中,有很多事物,僅僅用一維陣列,將無法恰當地被表示。還是說學生成績管理吧。乙個班級30個學員,你把他們編成1到30號,這很好。但現在有兩個班級要管理怎麼辦?人家每個班級都自有自的編號,比如一班學生編是1 30 二班的學生也是1 30。你說,不行,要進行計算機管理,你們兩...
C 中二維陣列的使用
在c 中,如果陣列的元素又是陣列,則稱為二維陣列,其每一維對應乙個下標,第一維通常稱為行 row 第二維則稱為列 column 例如 int a 2 3 可以將二維陣列a看成是乙個2行 3列的矩陣。可以使用花括號括起來的初始化式列表來初始化二維陣列的元素。int a 2 3 也可以不使用花括號,而是...