C++ 数组

C++ 数组

数组用于在单个变量中存储多个值,而不是为每个值声明单独的变量。

要声明数组,请定义变量类型,指定数组名称,后跟 方括号,并指定它应该存储的元素数:

  1. string cars[4];

我们现在声明了一个变量,它包含一个由四个字符串组成的数组。要向其中插入值,我们可以使用数组字面量——将值放在逗号分隔的列表中,放在大括号内:

  1. string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};

要创建一个包含三个整数的数组,可以编写:

  1. int myNum[3] = {10, 20, 30};

访问数组元素

通过引用索引号访问数组元素。

此语句访问 cars 第一个 元素的值:

实例
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. int main() {
  5. string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};
  6. cout << cars[0];
  7. return 0;
  8. }
注意:数组索引以 0 开头:[0] 是第一个元素。[1] 是第二个元素,等等。

修改数组的元素

要更改特定元素的值,请使用索引:

实例
  1. cars[0] = "Opel";
实例
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. int main() {
  5. string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};
  6. cars[0] = "Opel";
  7. cout << cars[0];
  8. return 0;
  9. }

循环数组

可以使用 for 循环遍历数组元素。

以下示例输出 cars 数组中的所有元素:

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. int main() {
  5. string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};
  6. for (int i = 0; i < 4; i++) {
  7. cout << cars[i] << "\n";
  8. }
  9. return 0;
  10. }

下面的实例输出每个元素的索引及其值:

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. int main() {
  5. string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};
  6. for (int i = 0; i < 4; i++) {
  7. cout << i << ": " << cars[i] << "\n";
  8. }
  9. return 0;
  10. }

省略数组大小

在 C++ 中,您不必指定数组的大小,这样的话,数组的大小就是其中元素的数量。

  1. string cars[] = {"Volvo", "BMW", "Ford"}; // 数组长度是 3

当然您可以为了后面的扩展指定比数组元素长度更大的值:

  1. string cars[5] = {"Volvo", "BMW", "Ford"}; // 这样数组的大小就是 5,尽管里面只有 3 个元素

然后可以添加第 4 和第 5 个元素,而不需要覆盖其他元素:

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. int main() {
  5. string cars[5] = {"Volvo", "BMW", "Ford"};
  6. cars[3] = "Mazda";
  7. cars[4] = "Tesla";
  8. for(int i = 0; i < 5; i++) {
  9. cout << cars[i] << "\n";
  10. }
  11. return 0;
  12. }

省略声明中的元素

也可以在声明时声明数组而不指定元素,并在以后添加它们:

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. int main() {
  5. string cars[5];
  6. cars[0] = "Volvo";
  7. cars[1] = "BMW";
  8. cars[2] = "Ford";
  9. cars[3] = "Mazda";
  10. cars[4] = "Tesla";
  11. for(int i = 0; i < 5; i++) {
  12. cout << cars[i] << "\n";
  13. }
  14. return 0;
  15. }

获取数组大小/长度

若要获得 C++ 中数组的大小,可以使用 sizeof() 运算符,并将数组的大小除以数组中元素的大小(以字节为单位):

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. int main() {
  5. string cars[] = {"Volvo", "BMW", "Ford", "Mazda"};
  6. int getArraySize = sizeof(cars) / sizeof(cars[0]);
  7. cout << "Size of array is: " << getArraySize;
  8. return 0;
  9. }

还可以用它来查找具有保留空间的数组的大小:

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. int main() {
  5. string cars[8] = {"Volvo", "BMW", "Ford", "Mazda"};
  6. int getArraySize = sizeof(cars) / sizeof(cars[0]);
  7. cout << "Size of array is: " << getArraySize;
  8. return 0;
  9. }