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
?异常,因此可以进行异常处理。