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");
这只是对向量的一个简要介绍,让你知道“可调整大小的数组”是存在的。
如果你不理解上面的语法,不用担心。
在后面的章节中,你将学到更多关于向量和其他数据结构的知识。