在C++中修复向量的"下标超出范围"错误,可以采取以下几种方法:
示例代码如下:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
try {
int value = vec.at(10); // 访问超出范围的下标
std::cout << "Value: " << value << std::endl;
} catch (const std::out_of_range& e) {
std::cout << "Error: " << e.what() << std::endl;
}
return 0;
}
输出结果为:
Error: vector::_M_range_check: __n (which is 10) >= this->size() (which is 5)
示例代码如下:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
try {
int value = vec[10]; // 访问超出范围的下标
std::cout << "Value: " << value << std::endl;
} catch (const std::out_of_range& e) {
std::cout << "Error: " << e.what() << std::endl;
}
return 0;
}
输出结果为:
Error: vector::_M_range_check: __n (which is 10) >= this->size() (which is 5)
需要注意的是,以上方法仅适用于修复向量的"下标超出范围"错误,对于其他类型的错误或异常,可能需要采取不同的处理方式。此外,为了避免出现此类错误,开发人员在编写代码时应该注意对下标的合法性进行判断,确保不会超出向量的有效范围。
领取专属 10元无门槛券
手把手带您无忧上云