c++ 从文件中插入字符表作为键和浮点数作为结果到Map中

jm2pwxwz  于 2023-07-01  发布在  其他
关注(0)|答案(1)|浏览(104)

我想将文本文件中的值插入到Map中,遇到此错误:
错误:数组用作初始化器1817|:first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...),

fstream DistanceFile;

map<char[2], float> odleglosci;

void loadkeysdistance()
{
    char temp[2];
    string templine = "";
    float tempfloat = 0;
    DistanceFile.open("keys.txt");
    while (!DistanceFile.eof())
    {
        getline(disctionary, templine);
        temp[0] = templine[0];
        temp[1] = templine[2];
        tempfloat = stof(templine.substr(4, templine.length() - 4));
        odleglosci[temp] = tempfloat;
    }
}

这是我正在使用的函数,文本文件“keys.txt”看起来像这样:

A A 0
A B 87.82
A C 51.29
A D 38.10
A E 38.40
A F 57.15
A G 76.20
A H 95.25

以此类推直到到达ZZ

ddrv8njm

ddrv8njm1#

std::map<char[2], float> odleglosci;这并不是你想的那样。
它将尝试比较指向数组第一个元素的指针,而不是内容。
odleglosci[temp] = tempfloat;由于上述原因没有意义,并且由于一些无关的原因在clang上触发编译错误,因为您没有发布最小的可重复示例,也没有完整的错误,我不确定是什么导致了您的错误。
使用std::pair<char,char>代替。

相关问题