【发布时间】:2011-12-14 21:22:59
【问题描述】:
用于存储范围起点和终点的数据结构。
rangename start end
range1 10 11
range2 20 22
range3 0 5
现在,如果我必须找到可能存在数字“x”的范围。
在 c++ 中存储它的有效方法是什么?
我正在尝试使用地图。但是然后搜索以查找范围可能很昂贵(我不确定)。建议一个好的数据结构。
我应该能够找到该元素是否存在于某个范围内。范围不应混合和匹配,并且没有相邻或其他界限。
如果我需要查找元素 3,它存在于范围 3 中,但元素 12 根本不存在。仅仅循环不是一种有效的方式。
【问题讨论】:
-
您的范围是否重叠?找到任何特定数字的范围是否会产生唯一的答案?
-
您将拥有多少个范围?他们多久会改变一次?值的总人口有多大(即 max-min)?
-
抱歉问题中的错误。范围不会重叠(我的印象是它可能。)并且值的数量最多为 100 到 200 条记录。
标签: c++ search data-structures range