我想知道是否有人知道任何具有 Loki 的 AssocVector 提供的性能特征的库代码(元素的引用位置,与 map 相比每个元素的内存开销更低)但具有 Boost 的 BiMap 功能(能够从关系的双方)?
或者使用 std::pairs 的排序 std::vector 并添加功能以使用对中的任何一个元素作为键来查找 vector 是前进的方向?
最佳答案
这真的取决于你想快速做什么。 Loki::AssocVector
有 O(n) 次插入和删除,而 boost::bimap
有 O(1) 当你使用哈希表时。如果您可以在数据结构的一个“ View ”上使用 O(n) 操作,而在另一个“ View ”上使用 O(lg n) 操作,那么您提出的解决方案将工作正常并且占用很少的内存。如果在一个 View 上的操作占主导地位,它对于小数据集可能会非常快。
您还可以考虑将 Boost.Intrusive 或 boost::bimap
与专门的分配器一起使用。