下面是用于调整向量矢量大小的代码块。为每行大小生成的输出打印为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
}
答案 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();
。