[英]Why this code in C++ doesn't work?
vector<vector<int> > v(4);
vector<int> k(4,0);
for (int i=0; i<v.size(); i++)
v.push_back(k);
for (int i=0; i<v.size(); i++) {
for (int j=0; j<k.size(); j++)
cout << v[i][j];
cout << endl;
我认为它应该可以工作,但是程序什么也不执行。 我哪里错了?
您永远都在第一个for循环中循环,我认为您想要做的事情是:
int main() {
// I think this is what your first for loop is trying to construct.
vector<vector<int>> v(4, vector<int>(4));
for (int i = 0; i < v.size(); ++i) {
for (int j = 0; j < v[i].size(); ++j) {
cout << v[i][j] << " ";
}
cout << endl;
}
}
当您push_back
,每次都会在末尾添加一个新的(因此,您依次有4个,5个,6个,依此类推...)。
for (int i=0; i<v.size(); i++)
v.push_back(k);
v.size将继续增加,并且循环将一直运行,直到内存不足!!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.