在 C++ 中,std::array
是标准库提供的一个容器,用于存储固定大小的元素序列。它具有以下特点:
-
固定大小 :
std::array
的大小在创建时就被确定,并且不能改变。因此,它适用于需要静态大小的情况。 -
连续存储 :
std::array
中的元素是连续存储的,因此可以通过索引快速访问元素。 -
支持迭代器 :
std::array
支持使用迭代器进行元素的遍历和操作。
下面是 std::array
的一些常见用法和函数:
创建 std::array
:
#include <array>
std::array<int, 5> arr; // 创建一个包含5个整数的数组
std::array<double, 3> arr2 = {1.1, 2.2, 3.3}; // 创建并初始化数组
访问元素:
std::array<int, 3> arr = {10, 20, 30};
int x = arr[0]; // 访问第一个元素
int y = arr.at(1); // 访问第二个元素,
at() 函数提供了越界检查
获取大小:
std::array<int, 4> arr = {1, 2, 3, 4};
int size = arr.size(); // 获取数组大小,结果为4
迭代器:
std::array<int, 3> arr = {10, 20, 30};
// 遍历 :
for(auto it = arr.begin(); it != arr.end(); ++it) {
std::cout << *it << " "; // 输出数组元素
}
填充数组:
std::array<int, 5> arr;
arr.fill(0); // 将数组所有元素填充为0
数组比较:
std::array<int, 3> arr1 = {1, 2, 3};
std::array<int, 3> arr2 = {1, 2, 3};
if(arr1 == arr2) {
std::cout << "Arrays are equal" << std::endl;
}
其他常见操作:
arr.front()
:返回第一个元素的引用。arr.back()
:返回最后一个元素的引用。arr.empty()
:检查数组是否为空。arr.swap(other)
:交换两个数组的内容。
总的来说,std::array
提供了一个类似于原始数组但更安全、更易于使用的替代品,特别适用于需要静态大小和高效访问的情况。