【发布时间】:2021-01-10 03:55:50
【问题描述】:
给定一对整数p,我希望能够用3 替换其中的任何2,反之亦然,所以我做了这样的事情:
pair<int,int> f(pair<int, int> p) {
if (p.first == 2)
p.first = 3;
else if (p.first == 3)
p.first = 2;
if (p.second == 2)
p.second = 3;
else if (p.second == 3)
p.second = 2;
return p;
}
但是,如果我想替换的不仅仅是这两个数字,一个一个一个一个,这个函数写起来会很烦人。对于这个例子,我怎样才能做到这一点,而不需要编写四个 if 语句,或者使用更少的代码,以便它可以扩展到更多可能需要替换的数字?
【问题讨论】:
-
但是,如果我想替换的不仅仅是这两个数字,您的意思是将元组传递给
f? -
不,我的意思是我可能想用 7s 替换所有 5s,用 12s 替换所有 8s,等等。