4

我想知道是否有人知道任何库代码具有 Loki 的 AssocVector 提供的性能特征(元素的引用位置,与地图相比,每个元素的内存开销更低)但具有 Boost 的 BiMap 功能(能够从关系的双方)?

还是使用 std::pairs 的排序 std::vector 并添加功能以使用对的任一元素作为键来查找向量是前进的方向?

4

1 回答 1

1

这真的取决于你想快速做什么。Loki::AssocVector有 O( n ) 插入和删除,而boost::bimap当你将它与哈希表一起使用时有 O(1)。如果您可以在数据结构的一个“视图”上使用 O( n ) 操作,而在另一个“视图”上使用 O(lg n ),那么您提出的解决方案将可以正常工作并且占用很少的内存。如果一个视图上的操作占主导地位,那么对于小型数据集可能会非常快。

您也可以考虑使用Boost.Intrusiveboost::bimap使用专门的分配器。

于 2010-11-16T00:19:16.187 回答