📅  最后修改于: 2023-12-03 15:29:52.726000             🧑  作者: Mango
在 C++ 中,数组和向量都是常见的数据结构。本文将介绍如何在 C++ 中使用数组和向量,以及它们之间的区别。
数组是同一类型变量组成的集合,这些变量可以按顺序访问。每个变量被称为数组元素,通过下标访问它们。
定义一个数组需要指定以下内容:
int myArray[5]; // 一个包含五个整数的数组
double myOtherArray[10]; // 一个包含十个双精度浮点数的数组
可以使用下标访问数组元素,下标从 0 开始。
int myArray[5] = {2, 3, 5, 7, 11};
int firstElement = myArray[0]; // 访问第一个元素
int thirdElement = myArray[2]; // 访问第三个元素
myArray[4] = 13; // 修改第五个元素
可以在定义数组时使用初始化列表初始化数组元素。
int myArray[5] = {2, 3, 5, 7, 11}; // 用一组初始值初始化数组
int myOtherArray[] = {1, 1, 2, 3, 5, 8}; // 编译器自动推断数组大小
多维数组是数组的数组。可以通过在数组定义中添加额外的维度来创建多维数组。
int my2DArray[3][5]; // 一个包含三行五列的二维数组
my2DArray[0][0] = 1; // 修改第一行第一列的值
向量是动态数组,可以在运行时添加或删除元素,而不需要事先确定向量的大小。
定义一个向量需要指定以下内容:
#include <vector>
std::vector<int> myVector; // 一个存储整数的向量
std::vector<double> myOtherVector; // 一个存储双精度浮点数的向量
可以使用 push_back
方法向向量中添加元素,可以使用 pop_back
方法删除向量中的最后一个元素。
std::vector<int> myVector;
myVector.push_back(2); // 向向量添加一个元素
myVector.push_back(3);
myVector.push_back(5);
myVector.pop_back(); // 从向量中删除最后一个元素
可以使用下标访问向量元素,下标从 0 开始。
std::vector<int> myVector = {2, 3, 5, 7, 11};
int firstElement = myVector[0]; // 访问第一个元素
int thirdElement = myVector[2]; // 访问第三个元素
myVector[4] = 13; // 修改第五个元素
可以在定义向量时使用初始化列表初始化向量元素。
std::vector<int> myVector = {2, 3, 5, 7, 11}; // 用一组初始值初始化向量
std::vector<int> myOtherVector{1, 1, 2, 3, 5, 8}; // 列表初始化,编译器自动推断向量类型和大小
数组和向量都是存储同一类型的元素的数据结构,但它们之间存在几个重要的区别。
首先,数组的大小必须事先确定,并且在程序运行时无法更改。向量的大小可以在运行时动态增加或减少。
其次,数组的元素存储在连续的内存位置上,因此数组对于大量元素的存储和访问非常高效。向量的元素存储在堆上的任意位置上,因此对于添加和删除元素非常高效,但访问元素则略慢一些。
在选择数组或向量时,请根据具体情况选择最适合您的需求的数据结构。