处理C ++中大数据的最佳方法?

用户名

我有很多物体(大约30k)。存储和访问它们的最佳方法是什么?它们都有一个特定的ID,但我也想使用它们的名称,类别等进行过滤和搜索。这是一个非常简单的类,类似于以下内容:

class objclass {
int id;
std::string name;
...
}

我当时在考虑SQL,但是我不知道那是最好的方法。

提前致谢!:)

更新:Thx伙计们!我想我接下来要讲向量。并澄清了30k并不那么大^^对我来说,从来没有处理过如此大量的数据,这似乎是很大的;)

pmr

std::vector听起来很合适。如果您事先知道获得了多少个元素,请使用vector::reservevector::resize不进行总体分配。否则,请vector::shrink_to_fit在大量插入后使用

要加快对的搜索id,请对其进行排序vector并使用binary_search/lower_bound

如果您有很多内容相同的字符串,请使用flyweight类。这也可以大大加快字符串比较的速度。

要快速搜索字符串成员,vector请将a迭代器放入您的容器中并对其进行排序,或者使用boost::multi_index

一个小的计算就可以证明这一点:假设int是4个字节,则字符串平均20个字母,30000个元素,大约需要2兆字节。完全不用担心。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章