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

不同场景下的函数传参方式推荐

不同场景下的函数传参方式推荐

  • 需要存储/赋值(setter,构造函数),推荐使用 按值传递 + std::move;代码最简洁,自动优化左值和右值,几乎无性能损失,是现代C++惯用手法
#include <string>
class Person {
private:std::string m_name;
public:// 值传递参数void setName(std::string name) {m_name = std::move(name); // 把形参的资源移动给成员变量}
};
// 传左值,形参name初始化,一次拷贝,之后移动,开销:1次拷贝,1次移动
// 传右值,形参name初始化,右值可以移动,直接移动构造临时右值到name,之后移动,开销:2次移动
  • 仅需只读访问(如打印,验证函数) 采用const T&,无开销,函数中不会修改,这是最快、安全的方式

  • 需要修改传入的参数本身,T&(非const引用),允许函数内修改原始对象

  • 需要窃取资源,且不关心左值,T&&(右值引用);明确表达所有权转移,比安置传递更强制(调用时必须用std::move或传右值),性能极致

http://www.jsqmd.com/news/482172/

相关文章:

  • 《Dream to Control: Learning Behaviors by Latent Imagination》随记
  • 基于SpringBoot的足球赛事社区互动网站设计与实现
  • 基于SpringBoot的智能旅游行程规划系统设计与实现
  • 传递闭包
  • 基于SpringBoot的艺术作品展示平台设计与实现
  • 关于 MySQL 的锁,你真的分清楚了吗?
  • 实现大数据领域数据合规的策略指南
  • 基于双层共识控制的直流微电网优化调度附Matlab代码
  • java学习第三天
  • 【单调栈】LeetCode 42. 接雨水
  • 基于随机奇异值分解和软阈值的大数据集中健壮高效的谐波去噪附Matlab代码
  • 如何从互联网上免费下载歌曲
  • 分片请求视频,然后播放,能解决视频文件超大导致浏览器崩溃卡死的问题吗?
  • 什么是前置mp4?
  • 基于天牛群算法优化ELM的功率预测研究附Matlab代码
  • 基于鹈鹕优化算法(POA)的支持向量机(SVM)时序预测模型研究附Matlab代码
  • 当麻雀学会三角函数:SCSSA-BiLSTM分类模型实战手记
  • 第七章 回溯算法part01
  • 数字员工和AI销冠系统是什么?它们在企业智能化运营中的优势与应用是什么?
  • 基于线性准则的考虑风力发电不确定性的分布鲁棒优化机组组合附Matlab代码
  • 公共数据资源挖掘:TCGA、GEO、ENCODE、GTEx——如何利用公开数据开展二次研究?
  • “土木人转行软件测试学习第10天”-流程管理平台(JIRA)
  • 2026年3月亲子西双版纳住宿推荐,这些地方值得一住!目前排行前列的西双版纳住宿源头厂家有哪些聚焦优质品牌综合实力排行 - 品牌推荐师
  • 本月刮板输送机产品排名,看看哪些表现突出,排行前列的刮板输送机排行综合实力与口碑权威评选 - 品牌推荐师
  • 微信JS-SDK分享权限验证失败?“offline verifying”错误排查全攻略
  • 速看!2026年3月刮板输送机优质产品排行榜,市面上头部刮板输送机厂商优质品牌榜单更新 - 品牌推荐师
  • 文件头标识
  • 2026年3月国内口碑好的皮带输送机生产厂家排行榜大揭秘,皮带输送机生产厂家关键技术和产品信息全方位测评 - 品牌推荐师
  • Gradle 与 React Native:跨平台移动开发的构建指南
  • 【电力系统】新能源出力不确定性的电气设备综合能源系统协同优化【含Matlab源码 15175期】