我想将文本文件中的值插入到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
1条答案
按热度按时间ddrv8njm1#
std::map<char[2], float> odleglosci;
这并不是你想的那样。它将尝试比较指向数组第一个元素的指针,而不是内容。
odleglosci[temp] = tempfloat;
由于上述原因没有意义,并且由于一些无关的原因在clang上触发编译错误,因为您没有发布最小的可重复示例,也没有完整的错误,我不确定是什么导致了您的错误。使用
std::pair<char,char>
代替。