具有map()/ mapto()函数的C / C ++库?

时间:2019-02-16 18:58:09

标签: c++ c math

我要搜索的是一个允许将某个数字范围的某个数字值映射到另一个数字的函数。我确实找到了一种手动创建此函数的方法,该函数具有基本计算std::unique_ptr<int> p = std::make_unique<int>( 42 ); some_C_API_that_takes_ownership( p.release() ); // Destructor of p won't delete object, because ownership was given up. ,但是我总是总是自己创建,搜索我的旧项目以查找它或仅为该文件创建头文件比较麻烦。此功能。

我想它是一个基本功能,应该放在C / C ++标准库中,或者至少在主流的第三方库中,但是我找不到它。

1 个答案:

答案 0 :(得分:1)

您正在寻找一个线性变换函数,该函数使用比例因子(即[input_start, input_end])来计算[output_start, output_end]范围内的每个数字(例如(output_end - output_start) / (input_end - input_start)以便覆盖完整范围)。

不幸的是,这个简单的函数在标准库中不存在(例如,cmathnumeric中都不存在)。无论如何,在使用这种转换时,通常您只想计算一次比例因子。

所以最简单的方法就是为此创建自己的函数。在C ++中,您可以创建一个类,该类在构造时计算因子。