改变字符串的副本并返回值而不是更改原始字符串
Mutating copy of string and returning value instead of changing original string
我有一个使用字符串的递归函数,我执行的操作是
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;
因为问题是操作 1 影响 original_string,我也想要操作 2 的真实 original_string。
但这对于不同的功能是不可能的,我需要为每个功能编写。
- 在 C++ 中是否已经存在或可以实现此目的的解决方法?
- 我想将字符串参数定义为 const * original_string 并期望操作的行为相同。
我定义了一个克隆函数
string clone(string orig_str) {
string cloned_str(orig_str);
return cloned_str;
}
并在方法class中调用函数
min(
method(clone(original_string).erase(...)),
method(clone(original_string).replace(...)
)
还将方法参数更改为
method(const orignal_string) { ... }
感谢@Scooter 的输入。
我有一个使用字符串的递归函数,我执行的操作是
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;
因为问题是操作 1 影响 original_string,我也想要操作 2 的真实 original_string。
但这对于不同的功能是不可能的,我需要为每个功能编写。
- 在 C++ 中是否已经存在或可以实现此目的的解决方法?
- 我想将字符串参数定义为 const * original_string 并期望操作的行为相同。
我定义了一个克隆函数
string clone(string orig_str) {
string cloned_str(orig_str);
return cloned_str;
}
并在方法class中调用函数
min(
method(clone(original_string).erase(...)),
method(clone(original_string).replace(...)
)
还将方法参数更改为
method(const orignal_string) { ... }
感谢@Scooter 的输入。