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

问题描述 投票:0回答:1

我正在编写一个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);
}

c++
1个回答
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);
}
© www.soinside.com 2019 - 2024. All rights reserved.