我正在尝试对二叉树进行编码,并且我正在尝试使用“inorder”函数来处理包含整数的二叉树并将二进制树按数字顺序输出到字符串。但是,当我尝试将整数连接到字符串的末尾时,我收到错误消息“错误C2440:'type cast':无法从'int'转换为'std :: string'。
该功能的代码如下:
void _inorder(node *tree, string &str)
{
if (tree != NULL)
{
_inorder(tree->left, str);
str = str + (string)(tree->data);
_inorder(tree->right, str);
}
cout << str << endl;
}
答案 0 :(得分:4)
使用std::to_string
(自c ++ 11开始)将int
转换为string
。
str = str + std::to_string(tree->data);
答案 1 :(得分:2)
在c ++ 11之前,你可以这样做:
ostringstream os;
os << tree->data;
str += os.str();
答案 2 :(得分:0)
使用此功能
std::to_string(int);
这应解决错误。