循环的C++二维向量

循环的C++二维向量,c++,for-loop,C++,For Loop,我有一个包含数据的文本文件,我把它放到了一个2D向量中。我可以用这个循环打印所有数据 int M = 1024; int N = 768 // row / column int R = 49; int C = 36 // row / column for (double bx = 0; bx < M; bx += R) for (double by = 0; by < N; by += C) { for (int x = 0; ((x

我有一个包含数据的文本文件,我把它放到了一个2D向量中。我可以用这个循环打印所有数据

int M = 1024; int N = 768   // row / column
int R = 49; int C = 36      // row / column

for (double bx = 0; bx < M; bx += R)
    for (double by = 0; by < N; by += C)
    {
        for (int x = 0; ((x < R) && ((bx + x) < M)); ++x)
        {
            for (int y = 0; ((y < C) && ((by + y) < N)); ++y)
            {
                if ((bx + x) >= M) 
                {
                    std::cout << (bx + x) << (by + y) << " ";

                }
                cout << MainIMG_2DVector[bx + x][by + y] << " ";
            }
        }
        cout << "\n\n\n" << endl;
    }
如果我想获得第一个数据块,我使用以下循环:

for (int i = 0; i < 49; i++)
    {
        for (int j = 0; j < 36; j++)
        {
            cout << MainIMG_2DVector[i][j] << " ";
        }
    }
当我将第一个块与文本文件中的数据进行比较时,它是正确的

但是,如果我获取第二个数据块并将其与文本文件进行比较,则它是不正确的

for (int i = 49; i < 98; i++)
    {
        for (int j = 36; j < 72; j++)
        {
            cout << MainIMG_2DVector[i][j] << " ";
        }
    }
我知道第二个循环是错误的,但我不知道如何解决这个问题。
有人能帮帮我吗。

你到底想要什么还不清楚,但是当我写这篇文章的时候,我想象了这个表格,你的代码给出了II象限和IV象限,就像在平面几何中一样。 也许,为了获得第三象限,它是:

    for (int i = 49; i < 98; i++)
   {
       for (int j = 0; j < 36; j++)
     {
          cout << MainIMG_2DVector[i][j] << " ";
     }
  }

请张贴完整的代码。我甚至不知道您是如何声明数组的。M,N,R和C也是常数,对吗?为什么要使用双精度?相对于第一个数据块,第二个数据块在哪里?您已更改为第二个块的行和列。