当我将字符串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);
}