boost中最快的容器是什么?

时间:2013-07-13 00:17:11

标签: c++ boost data-structures containers

我正在开发一个玩具/实验,需要DNS服务来获取本地网络上特定节点的位置/地址信息。它还将存储其他信息,例如节点类型,套接字类型(enet-udp或tcp)以及一些其他特定数据位。大多数(或可能全部)数值类型。每个条目将通过客户端ID与特定客户端相关联,每个客户端在节点内具有自己的线程。

我的问题是哪些提升包可以通过数字ID提供绝对最快的访问?虽然它可能永远无法实现,但我们的想法是服务可能会增长到未知数量,为多个节点的线程内的数千个客户端管理IPC。

换句话说,容器必须快速且能够生长。如果增长能力导致访问时间的成本高于设定尺寸的容器将是优选的,但是可变尺寸是理想的。插入时间并不重要,也不保持容器内部结构中的数据顺序。

对于这种类型的容器/结构,增压是错误的吗?这是我第一次对boost或者甚至c ++中的结构非常挑剔,所以期待学习新东西。

由于

1 个答案:

答案 0 :(得分:2)

首先,请花点时间确保此查找实际上是您应用程序的瓶颈之一(如果您正在执行I / O,则任何内部查找都可能无关紧要。)

如果你能够在数字id上设置一个上限(最大值),并且内容没有增长绝对最快,你可以得到一个预先保留的矢量。

否则,最可能的候选者将是来自C ++ 11或boost的散列(unordered_map)。哈希将具有恒定的时间查找,但是要注意加载因子以及何时增长。