【发布时间】:2010-11-16 13:12:57
【问题描述】:
我希望用 boost::bimap 替换 vector<string> 和 boost::unordered_map<string, size_t> 映射字符串到前者的索引。
我应该使用bimap 的什么实例化?到目前为止,我想出了
typedef bimap<
unordered_set_of<size_t>,
vector_of<string>
> StringMap;
但我不确定我现在是否颠倒了集合类型。另外,我想知道我是否应该更改collection of relations type。 vector_of_relation 是我的最佳选择,还是 set_of_relation,或者只使用默认值?
【问题讨论】:
-
添加更多关于您计划使用数据的方式的信息,以便我们确定完成您需要的限制。
-
我希望在
size_t和string对象之间进行双射,同时满足 O(1) 访问时间和最小或适中的内存需求。 -
@rep_movsd:是的,他们是。我最终通过使用 Boost.MultiIndex 解决了这个问题,我发现它更容易理解。 (事实证明我需要第三个数据视图:stackoverflow.com/questions/4217885/…)不过,仍然欢迎回答。
标签: c++ data-structures boost unordered-map bimap