这可能是一个非常简单的问题,但它正在追捕我。 我可以将数据放入容器中,但我似乎无法将其打印到控制台。
以下内容产生超出范围调试错误的下标
这是我的代码
std::vector<std::vector<int>> myVector;
for (int x = 0; x != 18; x++)
{
myVector.push_back(std::vector<int>(x,x));
std::cout << myVector[x][x] << std::endl;
}
非常感谢!
答案 0 :(得分:2)
当std::vector<int>(x,x)
x=0
分配zero elements
时,你在{for}循环内进行循环。在其他时候,您分配x
个元素(行索引:x
和列索引:0,1,...x-1
)并访问x+1
行中的x
元素。
所以将其改为
for (int x = 0; x != 18; x++)
{
myVector.push_back(vector<int>(x+1,x));
std::cout << myVector[x][x] << std::endl;
}