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

HJ C++11 Day6

查源码–标准库源代码分布

...\CPP_version\include\c++\bits //STL源码也在这

...\CPP_version\include\c++\ext

右值引用

该语义的发展是为了非必要的赋值操作。
下面介绍左值和右值的概念:

  1. 左值是可以出现在=左边的东西
  2. 右值是只能出现在=右边的东西(例如临时对象)
    左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。很难得到左值和右值的真正定义,但是有一个可以区分左值和右值的便捷方法:看能不能对表达式取地址,如果能,则为左值,否则为右值。
    在C++11中,右值引用的操作符为&&,左值引用的操作符为&

在这里,右值引用更像是“偷取”,我们没有深度拷贝堆内存中的数据,而是仅仅复制了指针,并把源对象 other 的指针置空。事实上,我们“偷取”了属于源对象 other 的内存数据。由于源对象 other 是一个右值,不会再被使用,因此客户并不会觉察到源对象被改变了。

完美转发

这里感觉只听懂了一点点,这里直接放别人的博客吧

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

相关文章:

  • Spring事务管理
  • 数据仓库的 DWD 分层架构:构建高效数据平台的基石
  • 科技重构旗舰SUV:腾势N9上市38.98万起
  • C++红黑树实现
  • 深度学习2-线性回归表示
  • 【读书笔记】华为《从偶然到必然》
  • SMBus协议(二):与I2C协议的对比
  • 5、linux c 线程 - 上
  • 基于STM32的两路电压测量仿真设计Proteus仿真+程序设计+设计报告+讲解视频
  • 使用LVS的 NAT 模式实现 3 台RS的轮询访问
  • (学习总结30)Linux 进程优先级、进程切换和环境变量
  • 使用LLM 构建MCP服务端和客户端
  • 信息安全和病毒防护——防火墙的作用
  • SFT和RLHF是什么意思?
  • Axure项目实战:智慧城市APP(四)医疗信息(动态面板、选中交互应用)
  • Jboss中间件漏洞攻略
  • java学习笔记6
  • 【云馨AI-大模型】大模型的开发和应用中,Python、PyTorch和vLLM关系概括
  • 从扩展黎曼泽塔函数构造物质和时空的结构-1
  • netty框架概述
  • 蓝桥云客 合并数列
  • 01、聊天与语言模型
  • [python]IsaacGym安装
  • 多线程编程
  • Android应用退出后不在任务栏显示
  • 如何做好需求管理培训
  • Rk3588,Opencv读取Gmsl相机,Rga yuv422转换rgb (降低CPU使用率)
  • 2.1.1~2词法分析的手工构造
  • 判断一个操作是不是允许
  • 3.23学习总结