我有一个存储在矢量中的多个多维数组,但我似乎有效地打印它们。根据我的尝试,我总是得到数组的第一行或没有输出。
这是我尝试打印multidim数组的方法:
int vecSize = myVec.size();
for (int x = 0; x < vecSize; x++){
for (int y=0; y <vecSize; y++){
cout<<myVec[x][y]<<endl;
}
}
这就是我将数组放在向量中的方式:
myVec.push_back(myMultiDArray);
有关如何改善这一点的任何建议?
答案 0 :(得分:0)
循环条件中存在错误:内部循环迭代到与外部循环相同的边界。这几乎肯定是错误的,它应该迭代到当前行向量的大小。像这样:
for (size_t x = 0, vecSize = myVec.size(); x < vecSize; x++) {
std::vector<int>& curVec = myVec[x];
for (size_t y = 0, curSize = curVec.size(); y < curSize; y++) {
cout << curVec[y] << " ";
}
cout << "\n";
}
此代码可以完美地用于任何形状的2D阵列。