【发布时间】:2014-03-12 09:25:31
【问题描述】:
我有大量的对象(大约 30k)。存储和访问它们的最佳方式是什么?它们都有一个特定的 ID,但我也想用它们的名称、类别等过滤和搜索它们。它是一个非常简单的类,如下所示:
class objclass {
int id;
std::string name;
...
}
我在考虑 SQL,但我不知道那是不是最好的方法。
提前致谢! :)
更新:谢谢各位!我想我会选择一个矢量。并且感谢澄清 30k 不是那么大^^ 对我来说,从来没有处理过如此大量的数据,它看起来相当大;)
【问题讨论】:
-
从来没有最好的方法。只有最适合您的方式。
-
我认为这不是很多数据。只需将它们存储在向量中,确保
shrink_to_fit向量。如果有很多重复的name/category字符串,请使用享元。在id上对它们进行排序以进行快速搜索。也许使用迭代器容器并将其排序在category或任何对此进行快速搜索的东西。 -
而且 30k 个元素似乎不是很大的对象^^
-
是内存中的临时存储(在这种情况下,我可能会使用 Boost.MultiIndex 之类的东西,或者只是将一些东西与矢量和地图拼凑在一起)还是持久存储(在这种情况下,数据库可能是最好的选择 - 我喜欢sqlite,但还有很多其他的)?
标签: c++ sql large-data