【问题标题】:Can I assign a set to another set which is being returned by a function我可以将一个集合分配给函数返回的另一个集合吗
【发布时间】:2021-07-10 06:10:45
【问题描述】:
set<string> getSubstring(string input, string output){
    set<string> m;
    if(input.length() == 0){
        m.insert(output);
        return m;
    }
    
    getSubstring(input.substr(1), output);
    getSubstring(input.substr(1), output + input[0]);
}

int main()
{
   string input;
   cin>>input;
   set<string> a = getSubstring(input, "");
}

我想将上述函数返回的集合分配给另一个集合。 这样做的正确方法是什么。 以下语句导致错误。

【问题讨论】:

  • 打开你的编译器警告,它会告诉你没有从应该返回std::set&lt;std::string&gt;的函数返回任何东西
  • 你不应该返回递归调用getSubstring吗?
  • 您可以查看@Yksisarvinen 告诉您的示例here
  • 在询问错误时,您应该在问题中包含错误消息。

标签: c++ string set syntax-error


【解决方案1】:

与 cmets 所说的类似,您需要确保在函数末尾返回集合:

set<string> getSubstring(string input, string output){
    set<string> m;
    if(input.length() == 0){
        m.insert(output);
        return m;
    }
    
    getSubstring(input.substr(1), output);
    getSubstring(input.substr(1), output + input[0]);

    // return the set after the recursive calls
    return m;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 2015-11-26
    • 2016-12-21
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多