首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否已经有了一些基于向量的集/地图实现?

是否已经有了一些基于向量的集/地图实现?
EN

Stack Overflow用户
提问于 2009-01-16 09:51:48
回答 6查看 4.4K关注 0票数 12

对于小集合或地图,使用排序向量通常要快得多,而不是基于树的set/map --特别是对于5-10个元素。LLVM有一些类本着这种精神,但没有真正的适配器提供像std::map那样的带有std::vector备份的接口。

有(免费)实现这一点吗?

编辑:谢谢你提供的所有其他想法,但我真的对基于向量的集/映射感兴趣。我确实有一些特殊的例子,我倾向于创建大量的集合/地图,这些集合/地图通常包含的元素少于10个,而且我确实希望减少记忆压力。例如,考虑到三角形网格中顶点的近邻边,您很容易得到100k组的3-4个元素。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-02-24 15:41:29

我只是偶然发现了你的问题,希望不会太晚。

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

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

这个库是由亚历山大斯库编写的,“现代C++设计”的作者。

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

票数 4
EN

Stack Overflow用户

发布于 2009-01-16 20:27:16

如果找不到合适的东西,我只需包装std::vector ()来对insert执行排序(),然后使用lower_bound()实现find()。它应该是直截了当的,并且和自定义解决方案一样有效。

票数 3
EN

Stack Overflow用户

发布于 2016-11-28 13:27:46

我知道,以前的帖子,但对于最近的访问者来说,Boost的flat_set和flat_map看上去就像你所需要的。有关详细信息,请参阅https://theboostcpplibraries.com/boost.container

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/449940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档