-3
私はデータを含むテキストファイルを持っており、これを2Dベクトルに入れました。私はこのループですべてのデータを印刷できます。C++ループの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] << " ";
}
}
、それは正しいです。
しかし、データの2番目のブロックを取得してテキストファイルと比較すると、間違っています。
for (int i = 49; i < 98; i++)
{
for (int j = 36; j < 72; j++)
{
cout << MainIMG_2DVector[i][j] << " ";
}
}
私は2番目のループが間違っていることを知っていますが、これを修正する方法はわかりません。 誰かが私を助けてくれますか?
完全なコードを投稿してください。私はあなたの配列をどのように宣言したのか考えていません。また、M、N、R、Cはconstですよね?なぜダブルスを使用していますか? –
最初のブロックに関する2番目のデータブロックはどこにありますか? 2番目のブロックの行と列の両方に変更しました。 –