C++ 从向量打印多维数组
我有多个多维数组存储在一个向量中,但我似乎可以有效地打印它们。根据我的尝试,我总是得到数组的第一行或没有输出 以下是我尝试打印多维阵列的方式:C++ 从向量打印多维数组,c++,arrays,vector,multidimensional-array,C++,Arrays,Vector,Multidimensional Array,我有多个多维数组存储在一个向量中,但我似乎可以有效地打印它们。根据我的尝试,我总是得到数组的第一行或没有输出 以下是我尝试打印多维阵列的方式: int vecSize = myVec.size(); for (int x = 0; x < vecSize; x++){ for (int y=0; y <vecSize; y++){ cout<<myVec[x][y]<<endl; }
int vecSize = myVec.size();
for (int x = 0; x < vecSize; x++){
for (int y=0; y <vecSize; y++){
cout<<myVec[x][y]<<endl;
}
}
关于如何改进这一点有什么建议吗?循环条件中有一个错误:内部循环迭代到与外部循环相同的边界。这几乎肯定是错误的,它应该迭代到当前行向量的大小。像这样:
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";
}
for(size\u t x=0,vecSize=myVec.size();x 什么是myVec
?这很令人困惑,因为通常向量都是一维的,而你正在做的myVec[x][y]
@luk32 myVec就是我用来存储多维数组的向量。那你为什么要对它使用双索引-myVec[x][y]
没有多大意义。你应该迭代向量以获得数组。然后迭代数组中的元素以打印它们。老实说,你现在的情况看起来一团糟。@luk32谢谢你的建议,让我们看看这是否有效。是否可以保证myVec元素中的每个向量都有相同数量的元素在myVec本身中?-如果不是,您将面临访问越界元素的风险
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";
}