如何存储和获取先前计算的值

How to store and get previously calculated value

本文关键字:计算 获取 何存储 存储      更新时间:2023-10-16

我是C 的新手。我已经制作了一个代码来计算值,但是我不确定如何获取先前计算的值,该值已在上次呼叫中计算出来。在我的理解中,这样做的方法是在数组中存储价值,但是我不确定确切的结构/方法。预先感谢。

double CalculateValue(Node* node)
{ 
float gamma=0.3;
double Value = 0.0;
Value = ((1-gamma)* previousValue)+ gamma); // how to get this previous value
if (Value > previousValue)

我会强烈建议避免全局/静态变量,创建一个仅存储值并具有进行计算的成员函数的小类可能是一个更好的主意。

如果您需要找到两个调用函数的值的值之间的差异,则沿此函数的某些内容应该可以解决: { const auto val1 = CalculateValue(); const auto val2 = CalculateValue(); std::cout << "Difference is: " << std::abs(val1 - val2) << std::endl; }

您正在寻找回忆模式(如果您正在搜索它,请不要记住)。这可能会方便:回忆,递归阶乘功能?

以下是使用类实现目标的示例(我没有测试过,所以这里和那里可能有一些错误)

class Solution {
public:
    void init_value(double val){ // initalize the value
        _previousValue = val;
    }
    double CalculateValue(Node* node){
        float gamma=0.3;
        double Value = 0.0;
        Value = ((1-gamma)* _previousValue)+ gamma); // _value would be your previous value
        if (Value > _previousValue){ 
            //whatever you want to do in here
        }
        _previousValue = Value; // set _previousValue to the new calculated Value
        return Value;
    }
private:
    double _previousValue; // call init_value(val) to initliaze _previousValue = val OR you can hard code _previousValue if it is always like 0 or something

}

int main() {
    Solution solution = new Solution();
    solution.init_value(0);
    Node *node; // I don't know what your Node struct looks like so...
    double value = CalculateValue(node);
    return 0;
}