c++ - 特定区间的有效搜索

标签 c++ algorithm containers

假设我们有一个 double 值(x),我们需要从下面找到它属于哪个区间并返回相应的值:

enter image description here

我想知道最有效的方法是什么。
我需要多次调用此函数。 可以将这些值保存在一个集合中并进行二分查找,或者只是通过 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/

相关文章:

c++ - 返回 vector 对象的引用,好主意吗?

C++ 正态分布

javascript - 膨胀/解压缩部分 gzip 的算法

algorithm - 没有循环的分区算法,只有递归

java - 尝试在 docker 容器之间进行连接时,连接被拒绝(连接被拒绝)

c++ - 一种保护通过网络发送的数据的方法?

c++ - C++中的this->member VS member

c++ - 最近的字符串 :Find minimum distance between 2 strings in a string array

c++ - 我应该如何将容器转换为 reference_wrappers 的容器?

spring - 我们什么时候需要在容器中运行 Java 应用程序?