调整矢量矢量的大小

时间:2017-11-19 11:46:24

标签: c++ vector operator-precedence comma-operator

下面是用于调整向量矢量大小的代码块。为每行大小生成的输出打印为0?即使我将每一行的大小调整为W,为什么会发生这种情况;

int main() {
    int H,W,i;
    cin >> H,W; // H=3,W=5;
    vector<vector<int> >v;
    v.resize(H);

    for(i=0;i<H;i++)
        v[i].resize(W);

    cout << v[1].size(); // Output is printed 0 
}

1 个答案:

答案 0 :(得分:6)

cin >> H,W;没有达到您的预期。根据{{​​3}},它与(cin >> H), W;相同,第二个表达式W实际上没有做任何事情,因此W根本没有初始化。任何使用它都会导致C++ Operator Precedence

将其更改为cin >> H >> W;

顺便说一句:将cout << v[1].size();更改为cout << v[i].size();