数据模型问题
假设我有字符串->索引数据对,例如
"hello" -> 0
"best" -> 1
"nice" -> 2
"beautiful" -> 3
现在对于我的流程,我想对字符串进行对数搜索,因此很明显将此数据放入 std::map
中。但是,在某些时候,我希望返回按索引排序的数据(如上面所写),但没有 o(N^2) 复杂性。我该怎么做,boost 可以帮忙吗? std::map
对于第二个要求没有用处。如何在不使用 N 相关内存的情况下处理这些数据。 (N 是映射中元素的数量。)
Say I have string->index pairs of data, e.g.
"hello" -> 0
"best" -> 1
"nice" -> 2
"beautiful" -> 3
Now for my flow I want to have logarithmic search on strings, so it is obvious to place this data into std::map
. But, in some point, I want to have back my data ordered by index (as it is written above) but with with no o(N^2) complexity. How I can do that, boost can help? std::map
is not useful for the second requirement. How to handle this data without using N - dependent memory. (N is the number of elements in map.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用
boost::bimap
。请在此处查看文档。You need to use
boost::bimap
. Check the documentation here.如果我理解正确的话,你可以使用两张地图。一个
要索引的字符串
,另一个要索引的字符串
。If I understood correct, you can use two maps. One
string to index
and otherindex to string
.