假设我们有一个 double 值(x
),我们需要从下面找到它属于哪个区间并返回相应的值:
我想知道最有效的方法是什么。
我需要多次调用此函数。
可以将这些值保存在一个集合中并进行二分查找,或者只是通过 if/else
语句检查?
提前致谢。
最佳答案
您可以为此使用 std::map:
std::map<double, double> valueMap;
valueMap[1.0e-5] = 1.0;
valueMap[1.0e-4] = 10.0;
valueMap[1.0e-3] = 100.0;
...
// To get a value from your map, use lower_bound:
double result = *valueMap.lower_bound(5.0e-4); //This will return 1.0
double result2 = *valueMap.lower_bound(5.0e-3); //This will return 10.0
关于c++ - 特定区间的有效搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24446342/