array
またはstd::vector
;で表されるイメージがメモリにあると想像してください。この例では、画像が 400x300 ピクセルのようなものであり、この構造を最大 64x64 ピクセルの正方形 (またはタイル) に分割したいとも想定しています。
私が検討している配列は、このように宣言されています
int a[400*300];
そして好きではない
int a[400][300];
これは、1 つの連続したメモリ チャンクです。
私が言いたいのは、データ構造とそのデータ構造へのアクセスを可能な限り線形に保つよう常に心がけているということです。イメージを正方形に分割するには、イメージがメモリ内でどのようにレイアウトされているかに応じて、1 つの行から別の行へ、または 1 つの列から別の列へジャンプする必要があります。画像のサイズと寸法が与えられた場合、正方形の境界を計算するのに問題はありませんが、このアプローチを使用することに実際の利点が見られずに、この正方形の反復を表現するときに少し複雑になりすぎます。
では、なぜこの種の細分化ステップに関する解決策がそれほど人気があるのでしょうか? 一度に1行または一度に1列のようにレンダリングしないのはなぜですか?