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;
我认为它应该有效,但程序不会执行任何操作。我哪里错了?
答案 0 :(得分:3)
你永远在第一个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个,那么......)。
答案 1 :(得分:1)
for (int i=0; i<v.size(); i++)
v.push_back(k);
v.size将继续增加,循环将一直运行,直到你内存不足!!!