我正在寻找一个数据结构在C++或实现一个有不同的表与字符串列表作为名称和每个表使用数字范围作为键。
最需要性能的主要操作是两个查找操作:
1.按列表中的名称获取表。
1.在每个表中,通过特定范围内的数字获取字符串值。
例如,假设以下Map
Table1 name = ["One", "Two"]
[ 5, 20] -> "Apple"
[25, 50] -> "Boat"
[60, 100] -> "Cow"
Table2 name = ["Three"]
[ 5, 20] -> "Air"
[25, 50] -> "Bard"
[60, 100] -> "Camera"
字符串
当给定像query("Two", 15)
这样的操作:
"Two" -> Table1
15 -> "Apple"
型
有什么建议吗?有任何意见都欢迎。
1条答案
按热度按时间cbeh67ev1#
您可以合并将散列表(例如
std::**unordered_map**
或absl::**flat_hash_map**
)与interval tree(例如boost::icl::**interval_map**
)组合:字符串
输出:
型