C++输出2D矢量
问题描述:
我写了这个double forloop,并期望看到这是否会输出此向量中的每个值,但它不起作用,对于其中的数据[i] .at(j)不太明白C++输出2D矢量
vector<int> data; //it filled with some integers with x rows and y columns
for (int i = 0; i < data.size; ++i)
{
for (int j = 0; j < col; ++j) cout << data[i].at(j) << ' ';
cout << endl;
}
我也试过这种方法,它不工作,要么data.at(我)。在(我)是
for (int i = 0; i < data.size; ++i)
{
for (int j = 0; j < col; ++j) cout << data.at(i).at(j) << ' ';
cout << endl;
}
会那样做的这些错误与一个小的修复工作?或者他们根本不工作?
答
这里重点:
data[i].at(j)
当你索引你在i
位置矢量,你得到它的i
个号码。这是类型int
。
然后你需要一个名为at()
的方法int
。这不是由原始类型int
提供的。
如果你试图效仿与一维二维向量,那么你可以这样做:
for (int i = 0; i < data.size; ++i)
{
for (int j = 0; j < col; ++j)
cout << data[i + j * col] << ' ';
cout << endl;
}
这是因为'int's没有'.at'功能。你没有2D矢量。 –
只需将矢量类型更改为双精度就可以工作?以及如果我想要使用int类型的向量呢? – rrc
没有@rrc它不会。请检查我的答案。 – gsamaras