標準では連続したメモリ ブロックの割り当てが強制されていないことはわかっていstd::vector
ますが、それでもすべての実装がこれに従います。
多次元の静的配列のベクトルを作成したいとします。簡単にするために 2 次元と長さ N のベクトルを考えてみましょうint[5]
。
すべての N*5 整数がメモリ内で連続していると確信できますか? 原則として、最初の要素のアドレスを知るだけですべての整数にアクセスできるようにするには? この実装は依存していますか?
参考までに、私が現在連続したメモリ ブロックに 2D 配列を作成する方法は、最初に長さ N の float* の (動的) 配列を作成し、1 つの配列にすべての N*5 個の float を割り当ててから、5 番目ごとの要素のアドレスをの最初の配列float*
。