保存变量并且在程序结束时候还原的方法

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
简介: 基本思路:在操作前构造一个类保存当前变量状态,在类析构中还原数值。

优势:即使程序异常退出,也会调用类的析构函数,变量状态依然可以还原。

保存类的源码

template
  class Save
      {
      protected:
          Type &_var;
          Type _save_value;
      public:
          Save(Type &elem):_var(elem),_save_value(elem){}
          ~Save(){_var = _save_value;}
     };

例子:

我们创建一个函数

void start(int &x)
    {
        Save<int> temp(x);
        x=3;
        std::cout<<"start x:"<std::endl;
    }


在主函数中调用

int main()
    {
        int x=2;
        start(x);
        std::cout<<"main x:"<std::end;
    }


运行

start x:3

main x:2

相关文章
|
2月前
|
PyTorch TensorFlow API
大模型中 .safetensors 文件、.ckpt文件、.gguf和.pth以及.bin文件区别、加载和保存以及转换方式
本文讨论了大模型中不同文件格式如`.safetensors`、`.ckpt`、`.gguf`、`.pth`和`.bin`的区别、用途以及如何在TensorFlow、PyTorch和ONNX等框架之间进行加载、保存和转换。
580 2
|
7月前
|
存储 弹性计算 运维
错误次数保存到变量2
【4月更文挑战第30天】
21 0
|
7月前
|
存储 弹性计算 运维
错误次数保存到变量
【4月更文挑战第30天】
37 0
|
存储 数据库 Python
保存变量
在编程中,&quot;保存变量&quot;通常指将一个变量的值保存到文件或数据库中,以便在程序下次运行时能够再次使用该值。这个过程通常称为&quot;持久化&quot;,因为变量的值被保存到磁盘上,从而使得程序能够跨越多个会话。
78 1
|
安全 Java
JDK21更新内容:临时变量
JDK21更新内容:临时变量
|
存储 编译器 C语言
RAM明明断电会丢失数据,为什么初始化的全局变量存储在RAM?详细分析程序的存储
RAM明明断电会丢失数据,为什么初始化的全局变量存储在RAM?详细分析程序的存储
575 0
|
SQL 数据库连接 数据库
学生信息管理系统之——实时错误91,对象变量或with块变量未设置
学生信息管理系统之——实时错误91,对象变量或with块变量未设置
|
数据库连接 数据库 数据安全/隐私保护
对象变量或with块变量未设置————问题根源
对象变量或with块变量未设置————问题根源
1192 0
对象变量或with块变量未设置————问题根源
NSKeyedArchiver保存对象到本地
NSKeyedArchiver保存对象到本地
70 0
|
SQL 数据库连接 数据库
实时错误“91” 对象变量或with块变量未设置”
实时错误“91” 对象变量或with块变量未设置”
853 0
实时错误“91” 对象变量或with块变量未设置”