C++ 省略陣列大小
省略陣列大小
在 C++ 中,您不必指定陣列的大小。編譯器足夠智慧,可以根據插入值的數量確定陣列的大小
string cars[] = {"Volvo", "BMW", "Ford"}; // 三個陣列元素
上面的示例等於
string cars[3] = {"Volvo", "BMW", "Ford"}; // 也是三個陣列元素
但是,最後一種方法被認為是“最佳實踐”,因為它會減少程式中出錯的可能性。
宣告時省略元素
也可以在宣告時不指定元素,以後再新增它們
示例
string cars[5];
cars[0] = "Volvo";
cars[1] = "BMW";
cars[2] = "Ford";
cars[3] = "Mazda";
cars[4] = "Tesla";
自己動手試一試 »
注意:上面的示例僅在指定陣列大小時有效。
如果不指定陣列大小,則會發生錯誤
示例
string cars[]; // 未指定陣列大小
cars[0] = "Volvo";
cars[1] = "BMW";
cars[2] = "Ford";
cars[3] = "Mazda";
cars[4] = "Tesla";
// 錯誤:'cars' 中缺少陣列大小
自己動手試一試 »
固定大小(陣列) vs. 動態大小(向量)
在討論 C++ 中的陣列時,您經常會聽到“固定大小”和“動態大小”這兩個術語。
這是因為 C++ 中的陣列大小是固定的,這意味著在建立後您**不能** **新增**或**刪除**元素。
陣列 - 固定大小示例
// 一個包含 3 個元素的陣列
string cars[3] = {"Volvo", "BMW", "Ford"};
// 嘗試向 cars 陣列新增另一個元素(第四個元素)將導致錯誤
cars[3] = "Tesla";
自己動手試一試 »
向量
對於需要新增和刪除陣列元素的操作,C++ 提供了**向量**,它們是**可調整大小的陣列**。
向量的大小是動態的,這意味著它可以根據需要增長和縮小。
向量在 <vector>
庫中,並且提供了許多有用的函式來新增、刪除和修改元素。
向量 - 動態大小示例
// 一個包含 3 個元素的向量
vector<string> cars = {"Volvo", "BMW", "Ford"};
// 向向量新增另一個元素
cars.push_back("Tesla");
自己動手試一試 »