【发布时间】:2012-11-21 08:13:12
【问题描述】:
在开源项目中搜索(无提升),我发现了一个类似 STL 的容器bimaphere,其中实现了双向映射。在标准 C++ 库中还有multimap。
- 但我想知道,有没有努力实现“类似 STL 双向多图”?
- 或者,我们如何组合现有的容器来生成数据 结构?
注意:一个简单的解决方案是双向使用两个multimap。但它的性能并不好。因为,对于每个insert/remove/find 操作,我们应该执行两次。此外,它分配了更多的内存。
注意二:boost.bimap 是 HostileFork 和 KerrekSB 的一个很好的建议,如果没有办法我会使用它。但在此之前,我需要找到一个非 Boost 且小型的类库。
【问题讨论】:
-
'boost::bimap' 是仅标头模板代码,因此在大小方面,您只需为使用的内容付费。正如 HostileFork 指出的那样,它也非常接近标准库方法。我怀疑你会找到一个更小的类库.....
-
非提升是因为?如果我创建了一个复制粘贴所有 boost 的项目,那会满足吗?如果只是复制粘贴定义你的类的头文件怎么样?
-
问题是我有一些限制,我更喜欢添加满足我问题的库。如您所知,boost 还有许多我真的不需要的其他功能。