C++学习笔记-array(数组)

在C++中,数组是一种基础且重要的数据结构,数组用于存储一组相同类型的数据。

创建数组

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// 创建数组
int example[5];
for (int i = 0; i < 5; i++)
	example[i] = 5;

// 数组本质上就是一个指针
int* ptr = example; 
*(ptr + 1) = 5; // 通过指针来索引元素


// 可以通过new在堆上创建一个数组,new返回一个指针
int* another = new int[5]; 
for (int i = 0; i < 5; i++)
	another[i] = 5;

关于数组的大小

关于数组的大小,C++无法像其他语言一样可以通过.size()之类的方法来获取数组的大小,有一种方法是当你在栈上创建数组时可以获取其大小。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
int count1 = sizeof(example) / sizeof(int); // 这种方式只能用于在栈上创建的数组
std::cout << count1 << std::endl;

int count2 = sizeof(another) / sizeof(int); // 指针类型,就不行了。
std::cout << count2 << std::endl;

/*
因此关于C++中获取数组的大小,Cherno的建议是自己维护
*/
static const int arrSize = 5;
int* arr = new int[arrSize];
for (int i = 0; i < arrSize; i++)
	arr[i] = 5;

array库

当然,如果你使用C++ 11,提供了一个array库,里面实现了一个更安全的数组,这比原版数组有更高的开销,因为它要维护size、边界检查之类的操作,but,谁在乎!

1
2
3
std::array<int, 5> exampleArray;
for (int i = 0; i < exampleArray.size(); i++)
	exampleArray[i] = 5;

总结

  1. 数组用于存储一组类型相同的数据
  2. 数组可以通过下标来索引其中的元素,也可以通过指针来索引,数组本质就是一个指针。
updatedupdated2025-03-132025-03-13