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";
}