Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用于存储元组键的数据结构:参数关系列表_C++_Data Structures - Fatal编程技术网

C++ 用于存储元组键的数据结构:参数关系列表

C++ 用于存储元组键的数据结构:参数关系列表,c++,data-structures,C++,Data Structures,在c中++ 我正在运行一个优化算法,为给定的温度和湿度组合找到一组参数,我想要一个有效查找和迭代时间的结构,以便进一步计算 示例:我计算温度[0k-300k]x湿度[x-xxx]范围内设备的所有5个参数。我想将这些存储在内存中,当我在给定的温度和湿度下调用函数时,它应该能够使用元组作为键快速加载相关的5个参数 我正在考虑一个多重映射,比如std::multimap,但我不确定向量带来的行李 编辑: 好的,示例如下(对于一个变量): 那么对于那门课,我想要: double later_calc(t

在c中++

我正在运行一个优化算法,为给定的温度和湿度组合找到一组参数,我想要一个有效查找和迭代时间的结构,以便进一步计算

示例:我计算温度[0k-300k]x湿度[x-xxx]范围内设备的所有5个参数。我想将这些存储在内存中,当我在给定的温度和湿度下调用函数时,它应该能够使用元组作为键快速加载相关的5个参数

我正在考虑一个多重映射,比如
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; 
}