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

avatar
作者
猴君
阅读量:0

在 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() 函数访问元素并输出结果;否则,输出错误信息。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!