c++

c++ index函数如何处理越界情况

小樊
86
2024-09-25 06:07:12
栏目: 编程语言

在 C++ 中,vector 和数组等容器提供了 at() 成员函数来访问其元素。当使用 at() 函数访问超出容器范围的索引时,会抛出一个 std::out_of_range 异常。

operator[] 成员函数则允许访问任何索引的元素,无论是否越界。但是,如果访问越界,则会导致未定义的行为,可能会导致程序崩溃或其他错误。

因此,在使用 operator[] 函数时,应该确保索引在容器范围内。如果需要检查索引是否越界,可以使用容器的 size() 成员函数来获取容器的大小,并与访问的索引进行比较。

例如,以下代码使用 vectorat() 函数来访问元素,并检查索引是否越界:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    int index = 4;

    if (index >= 0 && index < vec.size()) {
        std::cout << "vec[" << index << "] = " << vec.at(index) << std::endl;
    } else {
        std::cout << "Index out of range!" << std::endl;
    }

    return 0;
}

在上面的代码中,我们首先检查索引是否在容器范围内,如果是,则使用 at() 函数访问元素并输出结果;否则,输出错误信息。

0
看了该问题的人还看了