C++ 用于存储元组键的数据结构:参数关系列表
在c中++ 我正在运行一个优化算法,为给定的温度和湿度组合找到一组参数,我想要一个有效查找和迭代时间的结构,以便进一步计算 示例:我计算温度[0k-300k]x湿度[x-xxx]范围内设备的所有5个参数。我想将这些存储在内存中,当我在给定的温度和湿度下调用函数时,它应该能够使用元组作为键快速加载相关的5个参数 我正在考虑一个多重映射,比如C++ 用于存储元组键的数据结构:参数关系列表,c++,data-structures,C++,Data Structures,在c中++ 我正在运行一个优化算法,为给定的温度和湿度组合找到一组参数,我想要一个有效查找和迭代时间的结构,以便进一步计算 示例:我计算温度[0k-300k]x湿度[x-xxx]范围内设备的所有5个参数。我想将这些存储在内存中,当我在给定的温度和湿度下调用函数时,它应该能够使用元组作为键快速加载相关的5个参数 我正在考虑一个多重映射,比如std::multimap,但我不确定向量带来的行李 编辑: 好的,示例如下(对于一个变量): 那么对于那门课,我想要: double later_calc(t
std::multimap
,但我不确定向量带来的行李
编辑:
好的,示例如下(对于一个变量):
那么对于那门课,我想要:
double later_calc(temperature,humidity, x...){
return deviceSimulation(parameterList[(temperature, humidity, x...)]);
}
我希望later_calc函数能够快速访问通过输入温度、湿度等访问的类中的结构。在我看来,您希望使用
std::map
,将std::tuple
作为键,或者使用保存参数的自定义类,以及存储实验结果的映射类型(此处为double
,但您也可以轻松使用自定义的结果
类):
struct参数类型
{
内部温度;
室内湿度;
int x;
bool Operator读了3遍,仍然不理解这个问题。也许你可以添加一些伪代码?vector附带的行李是什么行李?我不知道vector的额外功能是否会影响性能…我有一组参数,所以我猜数组会很好-对吗?先配置文件,然后优化。
double later_calc(temperature,humidity, x...){
return deviceSimulation(parameterList[(temperature, humidity, x...)]);
}
struct ParameterType
{
int temperature;
int humidity;
int x;
bool operator<(ParameterType const& rhs) const
{
return std::tie(temperature, humidity, x) < std::tie(rhs.temperature, rhs.humidity, rhs.x);
}
};
using ResultType = double;
int main()
{
std::map<ParameterType, ResultType> params;
params[{263, 10, 1}] = 1.0;
std::cout<< params[{263, 10, 1}] <<std::endl;
}