超出范围时,Vector会将0作为输出?

时间:2017-04-25 19:47:32

标签: c++ c++11 vector stl

我正在玩嵌套向量并打印随机元素以查看输出,我注意到当我走出界限时,我没有收到错误。我只是将0作为值返回。

为什么会这样?

每当我尝试按索引调用越界元素时,向量是否被调整大小并初始化为零?

这是我正在运行的代码:

#include <iostream>
#include <vector>


int main(){
  std::vector<std::vector<int>> matrix;
  std::vector<int> temp;
  temp.push_back(1);
  temp.push_back(2);
  matrix.push_back(temp);
  std::cout << matrix[0][45] << std::endl;

  return 0;
}

1 个答案:

答案 0 :(得分:1)

你有未定义的行为,它打印0只是巧合。