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

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 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

相关文章
|
9月前
|
机器学习/深度学习 算法 机器人
基于QLearning强化学习的较大规模栅格地图机器人路径规划matlab仿真
本项目基于MATLAB 2022a,通过强化学习算法实现机器人在栅格地图中的路径规划。仿真结果显示了机器人从初始位置到目标位置的行驶动作序列(如“下下下下右右...”),并生成了详细的路径图。智能体通过Q-Learning算法与环境交互,根据奖励信号优化行为策略,最终学会最优路径。核心程序实现了效用值排序、状态转换及动作选择,并输出机器人行驶的动作序列和路径可视化图。
494 85
|
测试技术
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
280 2
|
算法
【改进灰狼优化算法】改进收敛因子和比例权重的灰狼优化算法【期刊论文完美复现】(Matlab代码实现)
【改进灰狼优化算法】改进收敛因子和比例权重的灰狼优化算法【期刊论文完美复现】(Matlab代码实现)
654 1
SpringMVC的JSP页面中中EL表达式不起作用的问题解决
今天,我在写SpringMVC代码的时候遇到了一个问题,就是在jsp页面中使用el表达式取值,取不到值,但是使用jsp中嵌套java代码可以取到值。
1111 0
|
C++
C++继承一之公有继承
一般来说一个类可以继承于另外一个类,分别叫做派生类和基类, 派生类继承了基类的公有成员和保护成员以及实现,而私有成员只能通过 基类的公有方法进行访问 派生类应该包含如下信息: 1、继承类构造函数 2、需要额外增加的成员以及实现 我们引用C++ primer...
834 0
|
缓存 算法 Python
说说流控制(RTS/CTS/DTR/DSR 你都明白了吗?)【转】
转自:http://bbs.ednchina.com/BLOG_ARTICLE_129041.HTM 以前写的博文,转过来   ==============   先引用一篇网文,作者不详,因几个地方都说自己是原创,我昏了,不知道是谁原创的     RS232中RTS和CTS的作用 问:...
1387 0
|
移动开发 HTML5
经典网页设计:20个精美的国外单页网站作品
  如果一个网站的内容不是很多而且将来内容也不怎么增加的情况下,那么制作成单页网站(Single Page Websites)的形式是很好的选择。随着视差滚动(Parallax Scrolling)特效的流行,如今的单页网站也把这种精美的效果集成了进来,使得页面呈现更具创意。
1002 0
|
7天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!