std::array
是 C++ 标准库提供的容器,它表示一个具有固定大小的数组。与裸数组相比,std::array
具有更多的优势,如提供了方便的成员函数、支持迭代器等。下面是对 std::array
的详细介绍以及使用示例。
std::array
的基本特点:
- 固定大小:
std::array
的大小在创建时就已经确定,之后不能再改变。 - 连续存储:
std::array
在内存中是连续存储的,类似于普通数组。 - 安全: 提供了边界检查,避免了访问数组时的越界错误。
- 支持迭代器: 可以使用迭代器遍历
std::array
中的元素。 - 提供成员函数: 提供了一些方便的成员函数,如
size()
、at()
、front()
、back()
等。
示例代码:
#include <iostream>
#include <array>
int main() {
// 创建一个包含 5 个整数的 std::array
std::array<int, 5> myArray;
// 初始化 std::array 的元素
for (int i = 0; i < 5; ++i) {
myArray[i] = i * 2;
}
// 使用范围-based for 循环遍历 std::array 中的元素
std::cout << "Elements of the array: ";
for (const auto& element : myArray) {
std::cout << element << " ";
}
std::cout << std::endl;
// 使用成员函数获取 std::array 的大小
std::cout << "Size of the array: " << myArray.size() << std::endl;
// 使用成员函数访问第一个和最后一个元素
std::cout << "First element: " << myArray.front() << std::endl;
std::cout << "Last element: " << myArray.back() << std::endl;
// 使用 at() 成员函数进行安全的访问
try {
std::cout << "Element at index 2: " << myArray.at(2) << std::endl;
std::cout << "Element at index 10: " << myArray.at(10) << std::endl; // 这会引发异常
} catch (const std::out_of_range& e) {
std::cerr << "Out of range exception: " << e.what() << std::endl;
}
return 0;
}
在这个示例中,我们首先创建了一个包含 5 个整数的 std::array
对象,然后初始化了它的元素。接着,通过范围-based for 循环遍历了数组中的元素,并使用一些成员函数演示了数组的基本操作,包括获取大小、访问首尾元素以及安全的访问元素。需要注意的是,at()
函数在访问越界时会引发 std::out_of_range
异常,因此可以进行异常处理。