|
二次元配列というのが vector<vector<int> > v2; であるなら、 これは int a2[100][200]; とはメモリ上のデータ配置が全く異なっているわけだ。 どう異なっているか理解できていると、この v2 を「縮小」して省メモリするのは困難とわかるはず。
v2 自体を縮小することはほとんど意味がなくて v2[0] v2[1] v2[2] ... v2[n] をすでに提示の方法で個別に縮小すればいいんだ。 でも縮小しても再利用困難な「小さな未使用領域」が増えるだけで、あまり美味しくない可能性が高いっす。
この v2 自体および v2[n] が具体的にどのようにメモリ上に確保されるか図を書いてみるといいっす。 これを文字だけの掲示板向けに AsciiArt で書くのは面倒すぎる・・・
|