我正在为一个学校项目工作,但遇到了一个问题(标题中有错误)。

这是发生错误的代码行:

kruskalS[n].nodeList[m].push_back(tempFirstCity);
kruskalS是一个结构,而nodeList是该结构内string类型的 vector ,我正尝试将tempFirstCity(也是string)插入该数组中。

自从四月份以来我没有进行任何编程,所以我很容易犯一个基本的错误。任何帮助将不胜感激,如果需要,我愿意从程序中发布更多信息。

最佳答案

std::stringchar的容器(在其中)。 push_back函数用于将一个元素添加到容器的末尾。因此,当您调用kruskalS[n].nodeList[m].push_back(tempFirstCity);时,表示您正在尝试在string的末尾添加一个称为kruskalS[n].nodeList[m]的元素。因此,编译器期望一个元素是char

如果您知道tempFirstCity不为空,并且想要将char中的第一个tempFirstCity添加到kruskalS[n].nodeList[m]的末尾(包括您知道tempFirstCity.size() == 1的情况),则可以

kruskalS[n].nodeList[m].push_back(tempFirstCity[0]);

如果要在任何当前内容之后添加整个字符串,则可以执行
kruskalS[n].nodeList[m] += tempFirstCity;

如果您预期没有当前内容和/或只想用tempFirstCity字符串替换已经存在的内容,则可以
kruskalS[n].nodeList[m] = tempFirstCity;

关于c++ - 不存在从 “std::string”到 “char”的适当转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13656501/

10-11 22:47