我正在为一个学校项目工作,但遇到了一个问题(标题中有错误)。
这是发生错误的代码行:
kruskalS[n].nodeList[m].push_back(tempFirstCity);
kruskalS
是一个结构,而nodeList
是该结构内string
类型的 vector ,我正尝试将tempFirstCity
(也是string
)插入该数组中。自从四月份以来我没有进行任何编程,所以我很容易犯一个基本的错误。任何帮助将不胜感激,如果需要,我愿意从程序中发布更多信息。
最佳答案
std::string
是char
的容器(在其中)。 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/