如何通过引用传递C ++字符串?

时间:2020-04-09 22:13:20

标签: c++

我正在编写一个huffcode程序,并且正在遍历树的每个分支以查找每个字母的代码。如何传递字符串以将其插入?另外,我从声明字符串向量的方式中出错,但是我在代码中都使用了向量。我在做错什么吗?

void treeTraverser(Node* root, char string, vector<char> const &alpha,
vector<string> const &huffcode){
 if(root->left!=NULL){
     string=string+'0';
     treeTraverser(root->left, string, alpha, huffcode);
  }
 if(root->right!=NULL){
    string=string+'1';
    treeTraverser(root->right, string, alpha, huffcode);
  }
   alpha.push_back(root->key);
   huffcode.push_back(string);
}

1 个答案:

答案 0 :(得分:0)

在您的char参数中将string&更改为string(并考虑重命名)。

此外,摆脱const参数上的huffcode。您无法push_back()进入const vector对象。

void treeTraverser(Node* root, string &str, vector<char> const &alpha, vector<string> &huffcode)
{
  if (root->left){
    str += '0';
    treeTraverser(root->left, str, alpha, huffcode);
  }
  if (root->right){
    str += '1';
    treeTraverser(root->right, str, alpha, huffcode);
  }
  alpha.push_back(root->key);
  huffcode.push_back(str);
}