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' 数组缺少大小

亲自试一试

固定大小(数组)与动态大小(向量)

在讨论 C++ 中的数组时,你经常会听到“固定大小(fixed size)”和“动态大小(dynamic size)”这两个术语。

这是因为 C++ 中数组的大小是固定的,这意味着在创建数组后,你无法添加删除元素。

数组 - 固定大小实例

// 一个包含3个元素的数组  
string cars[3] = {"Volvo", "BMW", "Ford"};  
  
// 尝试向cars数组添加另一个元素(第四个元素)将导致错误  
cars[3] = "Tesla";

亲自试一试

向量

对于需要添加和删除元素的操作,C++ 提供了向量(vector),这是一种可调整大小的数组。

向量的大小是动态的,这意味着它可以根据需要进行扩展和缩减。

向量位于 <vector> 库中,它们附带了许多用于添加、删除和修改元素的有用函数:

向量 - 动态大小实例

// 包含 3 个元素的向量
vector<string> cars = {"Volvo", "BMW", "Ford"};  
  
// 向向量中添加另一个元素  
cars.push_back("Tesla");

亲自试一试

这只是对向量的一个简要介绍,让你知道“可调整大小的数组”是存在的。

如果你不理解上面的语法,不用担心。

在后面的章节中,你将学到更多关于向量和其他数据结构的知识。