我有一个使用字符串的递归函数,我执行的操作是
erase, replace, insert,..
int method(original_string):
...
min(operation1(original_string), operation2(original_string))
...
我想保持原始字符串不变,而是需要一个变异的新字符串
mutate(original_string, operation) :
temp = copyof(original_string)
operation(temp);
return temp;
因为问题是operation1影响original_string,我也想要操作2的真实original_string。
但这对于不同的功能是不可能的,我需要为每个功能编写。
答案 0 :(得分:0)
我已经定义了一个克隆函数
string clone(string orig_str) {
string cloned_str(orig_str);
return cloned_str;
}
并在调用函数的方法类中
min(
method(clone(original_string).erase(...)),
method(clone(original_string).replace(...)
)
还将方法参数更改为
method(const orignal_string) { ... }
感谢@Scooter的输入。