如何存储和获取先前计算的值
How to store and get previously calculated value
我是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;
}
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- C++为构建时间获取QDateTime的可靠方法
- 递归函数计算序列中的平方和(并输出过程)
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 如何在常量计算表达式中获取编译时错误?
- 我们如何跳过帧,计算帧数并使用视频阅读器获取当前帧
- 如何从文本文件中获取值,然后用它们执行一些计算(例如乘以并显示它们)?
- 从数组中获取值并计算平均值,然后存储在数组中
- 发布获取语义以计算平均值
- 如何存储和获取先前计算的值
- 获取计算列表中的前 n 项的最快方法是什么
- 如何在 OpenCL 中运行时获取计算单元 ID
- c++获取用户选择的日期与实际日期之间的年份(计算日、月、年)
- c++从字符串中获取数字并进行计算
- 获取用户计算机上文件名按文本行筛选的文件和文件夹列表
- 使用SHA1CryptoServiceProvider获取正在计算的SHA1的进度
- 在 Linux 计算机上获取所有连接的 IP
- c++ Linux在同一台计算机上获取返回不同值的MAC地址
- CUDA如何获取网格、块、线程大小和并行化非方阵计算