对于作为参数传递的字符串,对非const的引用的初始值必须为lvalue

时间:2019-12-21 06:33:08

标签: c++

当我将字符串s作为参数传递给函数交错时,出现错误。它告诉我对非常量的引用的初始值必须为左值。我该如何纠正?

#include<iostream>
#include<vector>

using namespace std;

void interleave(string s1, string s2, string s, int i, int j, vector<string> &ans) {
    if (i == s1.length() && j == s2.length()) {
        ans.push_back("" + s);
    }

    if (i != s1.length()) {
            interleave(s1, s2, s, i + 1, j, s + s1.at(i));
    }

    if (j != s2.length()) {
            interleave(s1, s2, s, i, j + 1, s + s2.at(j));
    }
}


int main() {
    string s1, s2;
    cin >> s1 >> s2;
    vector<string> ans;
    string s;
    interleave(s1, s2, s, 0, 0, ans);


}

0 个答案:

没有答案