この質問は、あらゆるタイプの静的データに適用されます。int
例を単純にするためだけに使用しています。
int を含む大きな XML データ ファイルを読み込んで、vector<int>
. 私が使用している特定のデータについては、同じ値が何度も連続して繰り返されることは非常に一般的です。
<Node value="4" count="4000">
このcount
属性は、値が x 回繰り返されることを意味します。
for(int i = 0; i < 4000; i++)
vec.push_back(4);
4000回連続して現れることがわかっているのに、同じ値を繰り返し格納するのはメモリの無駄のようです。ただし、いつでもベクトルにインデックスを付けることができる必要があります。
より大きなデータ オブジェクトの場合、ポインタを格納するだけでよいことはわかっていますが、上記の例では 4000 個の同一のポインタを格納する必要があります。
このような問題に対処するための戦略はありますか?