📜  C++ STL中的数组at()函数(1)

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

C++ STL中的数组at()函数

在C++ STL中,数组是一个重要的数据结构,用于存储一系列相同类型的元素。STL中的数组是用于容器的数组,称为std :: array。在C++11中引入了std :: array。std :: array是一个固定大小的数组,并且大小在声明时已经指定。

STL中的数组at()函数用于访问数组中指定位置的元素。它类似于[]操作符,但是at()函数可以根据所提供的索引值进行范围检查,并在访问超出范围时引发异常。因此,使用at()函数比使用[]操作符更安全。

语法

以下是STL数组at()函数的语法:

array_name.at(index)

在此语法中,array_name是数组的名称,index是指定元素的位置。

返回值

at()函数返回数组指定位置处的元素的引用。

示例

以下是STL数组at()函数的示例:

#include<iostream>
#include<array>
 
using namespace std;
 
int main()
{
    std::array<int, 5> myarray = { 1, 2, 3, 4, 5 };
 
    cout << "使用at()函数访问数组中的元素:" << endl;
    for (size_t i = 0; i < myarray.size(); i++)
    {
        cout << "myarray[" << i << "] = " << myarray.at(i) << endl;
    }
 
    // 访问数组中的范围外的元素
    try
    {
        cout << "尝试访问数组中超出范围的元素:" << endl;
        cout << myarray.at(7) << endl;
    }
    catch (const std::exception& e)
    {
        std::cerr << e.what() << endl;
    }
 
    return 0;
}

在上面的示例中,我们声明了一个大小为5的std :: array myarray,并使用at()函数访问了数组中的元素。我们还尝试访问数组超出范围的元素,这将引发异常,并在控制台上显示错误消息。 我们用try-catch块捕获并处理异常。

以上程序会输出如下结果:

使用at()函数访问数组中的元素:
myarray[0] = 1
myarray[1] = 2
myarray[2] = 3
myarray[3] = 4
myarray[4] = 5
尝试访问数组中超出范围的元素:
array::at: __n (which is 7) >= _Nm (which is 5)
总结

在STL中,使用at()函数访问数组的元素是一种安全的方法,它可以保证我们不会访问数组超出范围的元素,并且可以在超出范围时引发异常。但是,at()函数比[]操作符的效率要低一些,在大型数组上使用时可能会对性能产生影响。