C++ 为快速查找而优化的有序关联数据结构?

C++ 为快速查找而优化的有序关联数据结构?,c++,stl,C++,Stl,我正在寻找一个std::map-样的数据结构,该结构针对快速查找进行了优化 一种方法是使用排序的std::vector作为底层存储来实现map接口-这将提供快速的二进制搜索,这要归功于随机访问迭代器和缓存位置 然而,这听起来像是车轮的重新发明。这样的事情肯定已经存在了 是否存在使用std::vector进行存储的开源有序关联数据结构 编辑: 对于建议使用std::map的评论,请阅读以下内容: 是否有使用 存储的std::向量 如何维护一个排序的向量?这样可以快速查找(二进制搜索,无需指针遍历)

我正在寻找一个
std::map
-样的数据结构,该结构针对快速查找进行了优化

一种方法是使用排序的
std::vector
作为底层存储来实现map接口-这将提供快速的
二进制搜索,这要归功于随机访问迭代器和缓存位置

然而,这听起来像是车轮的重新发明。这样的事情肯定已经存在了

是否存在使用std::vector进行存储的开源有序关联数据结构

编辑:

对于建议使用std::map的评论,请阅读以下内容:

是否有使用 存储的std::向量

如何维护一个排序的
向量
?这样可以快速查找(二进制搜索,无需指针遍历)

是否有使用 存储的std::向量


如何维护一个排序的
向量
?这样可以快速查找(二进制搜索,无需指针遍历)

Boost.Containers库有一个有序映射容器,其存储由一个称为的连续数组支持。但是请注意,渐进的理论复杂性与标准的
映射(对数)相同,更好的选择取决于用例的许多细节:插入与查找、迭代、迭代或无效要求


由于接口非常相似,因此应该可以通过typedef将一个接口替换为另一个接口,并分析相关性能,这是您绝对必须做的事情。

Boost.Containers库有一个有序映射容器,其存储由一个名为。但是请注意,渐进的理论复杂性与标准的
映射(对数)相同,更好的选择取决于用例的许多细节:插入与查找、迭代、迭代或无效要求


由于接口非常相似,因此应该可以通过typedef将一个接口替换为另一个接口,并分析相关性能,这是您绝对必须做的。

映射具有快速查找功能。你希望它快多少?!您可能正在从Boost.Containers中查找Boost的“平面图”。std::map有什么问题?它是极其类似于std::map的,并且为fat查找进行了优化。@JesseGood:
unordered\u map
奇怪的是,它不是一个有序的关联数据结构。。。如图所示:帕斯·凯雷克建议,你可能想退房。地图具有快速查找功能。你希望它快多少?!您可能正在从Boost.Containers中查找Boost的“平面图”。std::map有什么问题?它是极其类似于std::map的,并且为fat查找进行了优化。@JesseGood:
unordered\u map
奇怪的是,它不是一个有序的关联数据结构。。。想想看。帕斯·凯雷克建议,你可能想去看看。