这个问题适用于任何类型的静态数据。我只是int
用来保持示例简单。
我正在读取一个包含整数的大型 XML 数据文件并将它们存储在vector<int>
. 对于我正在使用的特定数据,相同的值连续重复多次是很常见的。
<Node value="4" count="4000">
该count
属性意味着该值将被重复 x 次:
for(int i = 0; i < 4000; i++)
vec.push_back(4);
当我已经知道它将连续出现 4000 次时,重复存储相同的值似乎是浪费内存。但是,我需要能够在任何时候对向量进行索引。
对于较大的数据对象,我知道我可以只存储一个指针,但在上面的示例中仍然需要存储 4000 个相同的指针。
是否有任何类型的策略来处理这样的问题?