当前位置: 首页 > news >正文

c++ 引用包装器的用法

直接写测试代码测试引用包装器:

void testReference(void) {int a = 10, b = 20, c = 30;// std::reference_wrapper为引用包装器。可以通过std::ref函数构造std::reference_wrapper<int> refA = std::ref(a);std::reference_wrapper<int> refB = std::ref(b);std::reference_wrapper<int> refC = std::ref(c);std::vector<std::reference_wrapper<int>> numbers; // 或者直接初始化为{refA,refB,refC}numbers.push_back(refA);numbers.push_back(refB);numbers.push_back(refC);for (auto& ref : numbers) {ref.get()++; // 通过引用包装器修改值。成功!}std::cout << std::format("a、b、c的值分别为:{0}、{1}、{2}", a, b, c) << std::endl;  // std::format为c++ 20的字符串格式化函数// 或者这样也能通过引用包装器修改值std::for_each(numbers.begin(), numbers.end(), [](auto& val)->void {val /= 2; // ok. 可以修改原始变量成功});std::cout << std::format("a、b、c的值又变为:{0}、{1}、{2}", a, b, c) << std::endl;
}

打印:

ok. 

http://www.dtcms.com/a/568955.html

相关文章:

  • ArrayList数据结构-数组篇
  • 合肥建设工程信息网站网站pc端和手机端分离怎么做
  • 广州网站建设费上海手机网站
  • Memento:让大模型智能体“自己变聪明”,不用微调模型权重
  • Java中的设计模式------简单工厂设计模式
  • 记录:win10环境手动编译tcl源码过程
  • SQL Server集群网络详解:心跳IP与管理IP
  • k8s的包管理工具(4)--helm3子模板的使用
  • 【C++】关于list的使用底层实现
  • Ubuntu安装单节点MicroK8s
  • Ubuntu22.04单节点部署k8s(无需外网)
  • 网站策划和运营微信最火的公众号排行
  • 北京景网站建设北京网站被处罚
  • 【深度学习新浪潮】llama.cpp完全适配Qwen3-0.6B/8B模型!从转换到部署保姆级教程
  • 24.NAT Server
  • Spring中@Controller与@RestController核心解析
  • 中企动力做的网站价格区间做网站v赚钱
  • uni-app中的地图引入(map)
  • Milvus:Json字段详解(十)
  • 八千字 《宠知汇》HarmonyOS应用案例热点技术解析
  • Box64 模拟器 让Steam 在 RISC-V 运行
  • 基于Django的智慧园区管理系统开发全解析
  • 2025上海国际汽车灯光及智能座舱展览将带来哪些新技术与新体验?
  • uniapp + Vue2 + Vuex + 持久化存储
  • 企业网站备案需要多久中文wordpress 主题
  • 香港 SFC 新规解读:虚拟资产交易平台迈向共享流动性与产品多元化时代
  • LegionSpace黑客松指南(一):项目开发流程指引
  • 网络注册公司怎么注册seo关键词推广价格
  • 阿拉伯语与中文对照词汇表PDF识别错误自动修正系统
  • 城市更新第一步:PDF转CAD,将历史图纸一键转化为设计复用底图