从矢量打印多维数组

时间:2014-05-12 03:01:14

标签: c++ arrays vector multidimensional-array

我有一个存储在矢量中的多个多维数组,但我似乎有效地打印它们。根据我的尝试,我总是得到数组的第一行或没有输出。

这是我尝试打印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);

有关如何改善这一点的任何建议?

1 个答案:

答案 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阵列。