繁体   English   中英

为什么C ++中的这段代码不起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM