当遍历向量时出现std::out_of_range
错误通常是因为访问了超出向量范围的索引位置。这可能是由于迭代器越界、访问负索引或者访问超过向量的大小等原因引起的。下面是几种可能的解决方法:
size()
函数获取向量的大小,并将索引值与其进行比较。例如:std::vector vec = {1, 2, 3, 4, 5};
for (int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << " ";
}
std::vector vec = {1, 2, 3, 4, 5};
for (std::vector::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
std::vector vec = {1, 2, 3, 4, 5};
for (int num : vec) {
std::cout << num << " ";
}
使用以上方法之一可以避免遍历向量时出现std::out_of_range
错误。但需要注意,在修改向量的大小或者删除元素时,迭代器可能会失效,因此需要谨慎使用。