-
vector動態分配內存空間,比較佔用資源,所以C++提供了數組模板
-
使用數組模板需要引用“array”頭文件
-
數組模板在定義上與數組定義有點差別,其他都差不多
-
#include<iostream> #include<array> using namespace std; int main(int argc, char* argv[]) { //定義一個數組模板的變量,第一個參數是類型,第二個參數是大小 //數組模板定義在堆上,所以定義之後不可以修改尺寸 array<string, 5> productNames = { "iPhone6","iPhoneXR" }; array<int, 3> codes; codes = { 200,300,400 }; int abc[3] = { 1,5,10 }; /*********************數組與數組模板的區別*************/ /*1.數組與數組模板在後期初始化上不同 int codes1[3]; codes1 = { 1,2,3 };//數組是不可以這樣的,語法錯誤 //數組要麼在定義時全部初始化,要麼在後期給元素單獨初始化 */ /*2.數組的尺寸允許使用變量。但是數組模板的尺寸不允許使用變量 const int size = 3; array<int, size> coed1; */ /*3.數組模板不可以當做指針來用,數組可以 cout << *abc << endl; */ /*4.數組模板可以更容易獲取數組的尺寸 */ /*5.將數組賦給指針時引用複製,而數組模板之間的賦值時值的賦值 */ /*************************************************/ //獲取第一個數組元素 cout << productNames[0] << endl; //輸出數組模板的尺寸 cout << productNames.size() << endl; //輸出數組的尺寸 cout << sizeof(abc) / sizeof(int) << endl; //注意: //不管是數組、還是數組模板,都不要超出最大的範圍 //枚舉元素 for (int i = 0; i < 2; i++) { cout << productNames[i] << endl; } for (int value : codes) { cout << value << endl; } //數組模板的複製 array<int, 3> code1; code1 = codes;//把codes的值複製過去 code1[0] = 123; cout << code1[0] << endl; cout << codes[0] << endl;//前面的賦值時值的傳遞,所以原數值不變 //數組的複製 int code2[]{ 1,2,3 }; //int code3[] = code2;//數組不可以這樣複製,有語法錯誤 int* pCode = code2;//可以這樣複製,但是這種複製是引用的複製 pCode[0] = 666;//此時code2的值也會改變 cout << code2[0] << endl; return 0; }
3-31數組模板使用基礎(C++11)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.