Data structures 是否有用于查找与任意范围匹配的值的数据结构?
对于键相等查找,我们可以使用类似hashmap的数据类型,但是否有用于查找与任意范围匹配的值的数据结构 下面的Rust代码使用Data structures 是否有用于查找与任意范围匹配的值的数据结构?,data-structures,language-agnostic,Data Structures,Language Agnostic,对于键相等查找,我们可以使用类似hashmap的数据类型,但是否有用于查找与任意范围匹配的值的数据结构 下面的Rust代码使用匹配表达式模拟这种情况,但我希望不必在代码中硬编码这些情况 设x=5; 匹配x{ d如果d println!(“d您可以创建一个范围列表,包含起始值和结束值。按起始值对该列表进行排序 当你得到一个查询时,对起始值进行二进制搜索。当你的值大于或等于起始值,小于或等于结束值时,你就知道你得到了正确的范围 如果总范围相对较小(例如,从1到1000的整数),则可以预填充范围引用数
匹配
表达式模拟这种情况,但我希望不必在代码中硬编码这些情况
设x=5;
匹配x{
d如果d println!(“d您可以创建一个范围列表,包含起始值和结束值。按起始值对该列表进行排序
当你得到一个查询时,对起始值进行二进制搜索。当你的值大于或等于起始值,小于或等于结束值时,你就知道你得到了正确的范围
如果总范围相对较小(例如,从1到1000的整数),则可以预填充范围引用数组。例如,有4个范围,可能的查询值为0到10:
range1: 0, 2
range2: 3, 5
range3: 6, 8
range4: 7, 10
那么,您的数组将是[range1,range1,range2,range2,range3,range3,range4,range4,range4]
您可以将其扩展到您想要的大小,具体取决于您想要花费的内存量。这将为您提供直接查找。类似于HashMap
,但也支持。可能重复的请参见;