簡體   English   中英

如何在 function 中將第 2 個字符開始的字符串作為參數傳遞以進行遞歸,並限制數據類型為 function 中的字符串?

[英]how to pass a string from 2nd character onwards as parameter in the function for recursion with constraint that data tye is String in function?

void someFunction(node * root, string s)
{  
 //some base condition;

    node *tem;
    for(char i= 0;s[i]!='\0';i++){
        if(s[i]=='1'){
            tem=root->right;
            someFunction(root->right,s+1);   
        }
        else{
            tem = root->left;
            decode_huff(tem, s+1)
        }
        tem=root;
    }
}

這是顯示錯誤。

您的 function 按值獲取std::string ,因此每次調用 function 時,都必須為其創建一個新string 要從另一個std::string std::string請使用std::string::substr()方法。

此外, std::string不是以空字符結尾的字符串,您應該根據它的size()而不是它的字符循環:

void someFunction(node * root, string s)
{  
    //some base condition;

    node *tem;
    for(size_t i = 0; i < s.size(); i++){
        if (s[i] == '1'){
            tem = root->right;
            someFunction(root->right, s.substr(i+1));   
        }
        else{
            tem = root->left;
            decode_huff(tem, s.substr(i+1));
        }
        tem = root;
    }
}

將 s.substr(i+1) 作為第二個參數傳遞給 someFunction。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM