是否已经有一些基于std :: vector的set/map实现?

Ant*_*eru 11 c++ optimization

对于小集合或地图,通常使用有序向量而不是基于树的set/ 更快,map特别是对于5-10个元素.LLVM 在这种精神上有一些类,但没有真正的适配器可以提供std::map类似的接口备份std::vector.

任何(免费)实现这个吗?

编辑:感谢所有其他想法,但我真的对基于矢量的集合/地图感兴趣.我确实有一些具体情况,我倾向于创建大量的通常少于10个元素的集合/映射,我确实希望减少内存压力.例如,考虑三角形网格中顶点的邻居边缘,您可以轻松地使用每组3-4个元素的100k组.

yoa*_*ram 5

我刚刚偶然发现你的问题,希望还不算太晚。

我推荐一个很棒的(开源)库,名为Loki。它有一个基于向量的关联容器实现,它是 std::map 的直接替代品,称为AssocVector

它为访问元素提供了更好的性能(而为插入/删除提供了最差的性能)。

该库由《Modern C++ Design》一书的作者Andrei Alexandrescu编写。

它还包含其他一些非常漂亮的东西。

  • 这么多年一直保持着这样的状态吗? (3认同)