我对C++有点陌生,我讨厌在需要将先前值存储在另一个变量中的情况下运行。所以我的问题是,我是否可以使变量在某种意义上存储两个值。我希望我能够调用以前存储的值并将其用于其他功能。
例如)
目前的方式
int x1 = 5;
int x2 = x1 + 5;
int diff = x2 - x1;
我想做的事int x = 5;
x = x + 5;
int diff = x - old_x;
最佳答案
这是一个适合您特定用例的最小类:
struct Int {
int val = 0, old_val = 0;
Int(int i) : val(i) {}
operator int() { return val; }
void operator=(int i) { old_val = std::exchange(val, i); }
int old() { return old_val; }
};
您可以像这样使用它:Int x = 5;
x = x + 7;
int diff = x - x.old(); // diff is 7
这是demo。请注意,此类非常少,在实践中,您将希望使
Int
模型尽可能接近int
,而仅具有记住先前值的附加属性。
关于c++ - 回想一下变量的先前值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63861179/