📜  c++ 数组与向量 - C++ (1)

📅  最后修改于: 2023-12-03 15:29:52.726000             🧑  作者: Mango

C++ 数组与向量

在 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}; // 列表初始化,编译器自动推断向量类型和大小
数组与向量的区别

数组和向量都是存储同一类型的元素的数据结构,但它们之间存在几个重要的区别。

首先,数组的大小必须事先确定,并且在程序运行时无法更改。向量的大小可以在运行时动态增加或减少。

其次,数组的元素存储在连续的内存位置上,因此数组对于大量元素的存储和访问非常高效。向量的元素存储在堆上的任意位置上,因此对于添加和删除元素非常高效,但访问元素则略慢一些。

在选择数组或向量时,请根据具体情况选择最适合您的需求的数据结构。