在 main() c++ 中输入二维向量
input 2D vector in main() c++
我是向量的新手,我想在main()函数中输入这个二维向量,但是无法这样做。
int main()
{
int t, x, n;
cin>>n;
vector< vector <int> > jail(n);
for(int i=0; i<n; i++){
jail[i].reserve(n);
for(int j=0; j<n; j++){
cin>>jail[i][j];
}
}
cout<< jailBreak(jail,n-1,0,0)<<endl;
}
运行时错误是我需要在程序开头输入乱码。
这个模棱两可的输入已经困扰我很长时间了,提前感谢您对此的任何建议。!
这一行:
jail[i].reserve(n);
只是告诉 vector
预分配内存(这只是提示优化 push_back
操作上的进一步重新分配,但不保证分配)。你必须使用 resize
而不是真正分配内存。
在您的代码中:
for(int i=0; i<n; i++){
jail[i].reserve(n);
for(int j=0; j<n; j++){
cin>>jail[i][j];
}
}
jail[i].reserve(n);
应该是jail[i].resize(n)
cin>>jail[i][j]
以前从未见过该作品。 cin
进去临时再push。
int temp;
std::cin >> temp;
jail[i].emplace_back(temp);
我是向量的新手,我想在main()函数中输入这个二维向量,但是无法这样做。
int main()
{
int t, x, n;
cin>>n;
vector< vector <int> > jail(n);
for(int i=0; i<n; i++){
jail[i].reserve(n);
for(int j=0; j<n; j++){
cin>>jail[i][j];
}
}
cout<< jailBreak(jail,n-1,0,0)<<endl;
}
运行时错误是我需要在程序开头输入乱码。 这个模棱两可的输入已经困扰我很长时间了,提前感谢您对此的任何建议。!
这一行:
jail[i].reserve(n);
只是告诉 vector
预分配内存(这只是提示优化 push_back
操作上的进一步重新分配,但不保证分配)。你必须使用 resize
而不是真正分配内存。
在您的代码中:
for(int i=0; i<n; i++){
jail[i].reserve(n);
for(int j=0; j<n; j++){
cin>>jail[i][j];
}
}
jail[i].reserve(n);
应该是jail[i].resize(n)
cin>>jail[i][j]
以前从未见过该作品。 cin
进去临时再push。
int temp;
std::cin >> temp;
jail[i].emplace_back(temp);