在开源项目中搜索(no-boost),我发现了一个类似STL的容器bimap
here,它实现了双向映射。标准C ++库中有multimap
。
注意:一个简单的解决方案是以双向方式使用两个multimap
。但它的表现并不好。因为,对于每个insert
/ remove
/ find
操作,我们应该执行两次。此外,它分配更多内存。
注意二:boost.bimap
是来自HostileFork和KerrekSB的好建议,如果没有办法,我会使用它。但在此之前,我需要找到一个非增强和小尺寸类库。
答案 0 :(得分:4)
Boost.bimap可让您自定义两个值的集合类型;两者都可以是非独特的。
答案 1 :(得分:2)
为什么在boost中出现bimap时会使用随机的“CodeProject”代码?
http://www.boost.org/doc/libs/1_42_0/libs/bimap/doc/html/index.html
Boost代码试图接近标准库的可接受方法,并且有一个审查过程,最终事情被接受。也许在下一个标准中,谁知道?