十一、引用与拷贝函数(References the Copy-Constructor)
十一、引用与拷贝函数(References & the Copy-Constructor)
11.1 指针回顾(Review of pointers)
-
指针可以保存一个地址。
-
当你定义一个指针时,必须指定它所指向变量的类型,并且应该初始化它。
示例:
int a = 0,b =0 ; int* ipa = &a; int* ipb = &b;
-
有了一个已经初始化的指针,最基本的操作是使用它修改它所指向的值。
-
C++允许将 任何类型的指针 赋值给一个
void*
类型的指针,但不允许一个void*
指针直接赋值给其他类型的指针。示例:
int i = 10; int* p = &i; void* vp = p;//OK //int* ip = vp;//error
11.2 引用(References)
概述
-
引用(
&
) 通常用于函数参数列表和函数返回值,但你也可以创建一个独立存在的引用。 -
引用在创建时必须被初始化(指针可以先创建,然后再初始化)。
-
一旦引用被初始化为指向某个对象,它就不能被更改为去引用另一个对象。(指针可以重新指向另一个对象)
-
引用始终不能是NULL。必须始终能够假设引用连接到了一个合法的存储区域。
示例
int a = 3,b = 5; int& m=a; //ok, int& q;//error int& a = b;//error int& k = m; int n = m; int* p = &m; int* & ref = p; m = m + 5;
函数中的引用
-
引用作为函数参数:函数内部对引用的修改会直接影响外部实参。
-
返回引用时:必须保证返回的引用所指向的对象再函数外仍然存在(类似返回指针)。
错误示例:
int* f(){int*p = 9;(*p) ++;return p;//error:因为p在函数结束时就会被销毁 }int& wrongFunction() {int x = 10; // x是局部变量return x; // 错误!x在函数结束时被销毁 }int main() {int& r = wrongFunction(); // r指向无效内存cout << r << endl; // 未定义行为 }
因为p,x都是函数内的局部变量,因此返回之后,函数内部的局部变量就被销毁了,那么p,x就会使无定义。
正确示例:
//C11:Reference.cpp #include <iostream> using namespace std; int* f(int* p){(*p) ++;return p;//安全,因为p是这个函数之外的,不会随着函数结束而被销毁 }int& g(int& x){x++;return x;//安全,因为x是这个函数之外的,不会随着函数结束而被销毁 }int&h (){int q = 0;//return q;//错误static int x = 1;return x;//安全,因为x的生命周期使整个程序 }void main() {int a = 0;f(&a);g(a); }
Const使用
-
使用
const
修饰引用参数,可以兼容更多调用情况:#include <iostream> using namespace std; void f(int& i){i++;} void g(const int& j){cout << j;}void main(){int a = 1;//f(1);//error,int& i = 1;f(a);//ok int& i = a;i++;g(1);// ok,1g(a); //ok,2 }
因为:
-
g
的参数是cosnt int& j
-
const int&
可以绑定到一个临时量(比如1)上 -
C++明确规定了:
只要是
const
引用,可以直接引用常量、临时对象,编译器会在内部自动生成一个临时对象来绑定。
const引用可以接住临时值 ,因为它承诺不会修改这个值,所以是安全的。
-
指针的引用
-
当我们想要修改指针本身,而不是指针指向的内容,可以使用指针引用(int*&)更清晰
//C11:ReferenceToPointer.cpp #include <iostream> using namespace std; void increment(int*& i){i++;} void main(){int a = 2;int* p = &a;cout << "p = " << p << ":" << *p << endl;increment(p);cout << "p = " << p << ":" << *p << endl; }
输出:
p = 000000456B8FFA24:2 p = 000000456B8FFA28:-858993460
11.3 拷贝构造函数
int i(5);
int j = i; //通过拷贝初始化
Date today(2002,10,10);
Date tomorrow = today;//通过拷贝初始化
想要像Date tomorrow = today
这样去初始化就需要拷贝函数。
概述
- 拷贝构造函数的目的:创建一个类对象时,可以用另一个已创建的同类对象的副本来初始化
- 如果用户已经声明了一个拷贝构造函数,那么就会使用它。如果没有,编译器会尝试生成一个公共的拷贝赋值函数。
- 默认的拷贝语义是成员逐一复制。
- 格式:
X::X(const X&)
示例:
#include <iostream>
using namespace std;
class Date{int year,month,day;
public:Date(int y = 0,int m = 0,int d = 0){year = y;month = m;day = d;cout << "Constructor called." << endl;}Date(const Date& r){year = r.year;month = r.month;day = r.day;cout << "Copy construtor called." << endl;}~Date(){cout << "Destructor called." << endl;}
};void main(){Date d1(2003,9,20);Date d2 = d1;//调用拷贝构造函数
}
输出:
Constructor called.
Copy construtor called.
Destructor called.
Destructor called.
类的成员函数(包括构造函数、拷贝构造函数、析构函数、普通成员函数), 可以访问自己类对象的 private 和 protected 成员。这里虽然
r
是一个参数对象,但是r 也是 Date 类的对象,而Date
的成员函数是允许访问同类对象的私有成员的。简单来说,一个类的成员函数可以随意访问自己类中的其他对象的私有数据。
什么时候需要拷贝构造函数
-
拷贝构造函数(Copy Constructor) 会在以下情况被调用:
-
当用一个已创建的同类对象去初始化一个新的类对象时。
Date d1(2003,9,20); Date d2 = d1;
-
当以值传递方式传递参数时。
-
当一个函数返回一个对象值时。
-
-
拷贝构造函数不会被调用的情况是:
- 当以引用传递方式传递参数时,因为没有创建新的对象。
示例:
tpoint.h
//C11:tpoint.h
class TPoint{
public:TPoint(int x,int y){X = x;Y = y;cout << "Constructor called." << X << endl;}TPoint(const TPoint& p); //copy constructor~TPoint(){cout << "Destructor called." << X << endl;}int Xcoord() {return X;}int Ycoord() {return Y;}
private:int X,Y;
};
TPoint::TPoint(const TPoint& P){X = P.X;Y = P.X;cout << "Copy Constructor called." << X << endl;
}
tpoint.cpp
#include <iostream>
#include "tpoint.h"
using namespace std;TPoint f(TPoint Q)//值传递参数,调用拷贝构造函数
{cout << "OK!" << endl;int x,y;x = Q.Xcoord() + 10;y = Q.Ycoord() + 20;TPoint R(x,y);return R;// 返回(值传递),调用拷贝构造函数
}void main(){TPoint M(20,35),P(0,0);TPoint N = M; //调用拷贝构造函数P = f(N);//调用拷贝构造函数cout << "P = " << P.Xcoord() << "," << P.Ycoord() << endl;
}
输出:
Constructor called.20 //M
Constructor called.0 //P
Copy Constructor called.20 //TPoint N = M
Copy Constructor called.20 //TPoint Q = M
OK!
Constructor called.30 // return R时拷贝的
Destructor called.20 //函数结束时 销毁这个TPoint Q = M
Destructor called.30 //函数退出时 销毁R
P = 30,40
Destructor called.20 //N.Destructor()
Destructor called.30 //P.Destructor()
Destructor called.20 //M.Destructor()
1.4 成员指针
-
指向数据成员的指针
//C11.PonterToMemberData.cpp #include <iostream> using namespace std;class Data { public:int a, b, c;void print() const {cout << a << "," << b << ","<< c << endl;} }; void main() {Data d;Data* dp = &d;int Data::* pmInt = &Data::a;dp->*pmInt = 47;pmInt = &Data::b;d.*pmInt = 48;pmInt = &Data::c;dp->*pmInt = 49;dp->print(); }
输出:
47,48,49
-
执行成员函数的指针
//C11:PointerToMemberFunction.cpp #include <iostream> using namespace std; class Widget{ public:void f(int) const { cout << "Widget::f()" << endl; }void h(int) const { cout << "Widget::h()" << endl; } }; void main() {Widget w;Widget* wp = &w;void(Widget:: * pmem)(int) const = &Widget::h;(w.*pmem)(1);(wp->*pmem)(2); }
输出:
Widget::h() Widget::h()
函数指针:
int (*fp)(float)
:说明fp
指向一个参数为float
,返回值为int
的函数
11.5总结
- 指针和引用的基本回顾
const
引用与指针引用的使用- 拷贝构造函数的重要性与使用场景
- 如何使用指向数据成员和成员函数的指针
相关文章:
十一、引用与拷贝函数(References the Copy-Constructor)
十一、引用与拷贝函数(References & the Copy-Constructor) 11.1 指针回顾(Review of pointers) 指针可以保存一个地址。 当你定义一个指针时,必须指定它所指向变量的类型,并且应该初始化它。 示例&a…...
数据结构之顺序表
目录 1.线性表 1.1 线性表的定义:零个或多个数据元素的有限序列。 1.2深度解析 1.3 线性表的抽象数据类型 2.顺序表 2.1 顺序表的定义和存储方式 2.2静态顺序表 2.2.1 静态顺序表的使用 2.2.3 为什么我们要使用typedef呢? 2.2.4 为什么我们要使…...
【计算机视觉】三种图像质量评价指标详解:PSNR、SSIM与SAM
图像质量评价指标详解:PSNR、SSIM与SAM 文章目录 图像质量评价指标详解:PSNR、SSIM与SAM1. 峰值信噪比(PSNR)1.1 数学定义1.2 特点与局限性 2. 结构相似性指数(SSIM)2.1 数学定义2.2 特点与应用 3. 光谱角度映射器(SAM)3.1 数学定义3.2 特点与应用 4. Py…...
轻舟系列FPGA加速卡:大模型分布式训练中的高效协同者
在超大规模模型(如千亿级参数)的分布式训练中,计算、存储与通信的协同优化是突破性能瓶颈的关键。绿算技术公司的轻舟系列FPGA加速卡凭借其低延迟、高能效和可编程特性,能够成为分布式训练架构中的异构加速节点。其在训练集群中的…...
C++20 小语法
这个提案允许在static_assert和if constexpr中从整形转换为布尔类型。 以下表格就可以表示所有内容。 对于严格的C 编译器来说,以前在这种情境下int无法向下转换为bool,需要手动强制转换, C23 这一情况得到了改善。 对于严格的C编译器来说&a…...
LM393比较器的比较翻转电压不对
问个问题,用的LM393比较器,3.3V供电,比较器输出上拉到3.3V, V给的基准2.8V,V-电压从1V升到2.3V,比较器就输出0V了,按理论超过2.8V才翻转到0V的 根据问题描述和电路分析,比较器LM393…...
解决 shadui组件库Popover 点击后会消失
react用了shadui组件库 <Popover><PopoverTrigger><div className"text-operation-item" onClick{props.callback}><img src{props.imgSrc} width{20} height{20} /></div></PopoverTrigger><PopoverContent className"…...
国联股份卫多多与北京慧闻科技(集团)签署战略合作协议
4月27日,北京慧闻科技(集团)有限公司(以下简称“慧闻科技”)销售总监王兴卓一行到访国联股份卫多多,同卫多多/纸多多副总裁、产发部总经理段任飞,卫多多机器人产业链总经理桂林展开深入交流&…...
从数据到决策:如何使用Python进行自动驾驶数据分析
从数据到决策:如何使用Python进行自动驾驶数据分析 大家好,我是Echo_Wish,今天来和大家聊一聊在自动驾驶领域中,如何通过Python进行数据分析。随着自动驾驶技术的不断发展,数据分析在这一领域的作用越来越重要。从传感器数据的处理到模型的训练和优化,Python在自动驾驶数…...
IIS服务器提示ERR_HTTP2 PROTOCOL ERROR解决方案
今天我的淘宝店来了一个客户,说小程序苹果访问没问题,安卓系统访问出现ERR HTTP2 PROTOCAL ERROR的错误见下图 方法供大家闭坑步骤:通过注册表修改(高级) 打开注册表编辑器 (regedit) 导航到: HKEY_LOCAL_MACHINE\SYSTEM\Current…...
Django的异步任务队列管理_Celery
1 基本原理 Celery 是一个异步任务队列,能够将耗时操作(如发邮件、处理图片、网络爬虫等)从 Django 主线程中分离出来,由后台的 worker 处理,避免阻塞请求。Celery 作为独立运行的后台进程(Worker…...
Ubuntu18.04安装IntelliJ IDEA2025步骤
1.下载linux版本的idea 复制下面链接到虚拟机浏览器 下载 IntelliJ IDEA 下载好后,你的文件里会多一个文件,如下图 2.解压并运行Idea 2.1在/usr/local/路径下新建安装目录IDEA: 打开终端输入以下命令: sudo mkdir -p /usr/loc…...
LLM - Large Language Model
回顾2024:与LLM又相伴一年的经历与思考 - 知乎万字长文入门大语言模型(LLM) - 知乎“大模型本质就是两个文件!”特斯拉前AI总监爆火LLM科普,时长1小时,面向普通大众 - 知乎大模型本质及趋势剖析,…...
解决Ubuntu20.04重启出现显卡驱动异常的问题(操作记录)
一、问题情况 电脑异常断电,重启后,显示界面异常,显卡驱动已丢失。 二、操作流程 1、查看安装显卡驱动 ls /usr/src | grep nvidia 记住该驱动,我的是nvidia-550.127.05 2、安装dkms(如果没有) sudo …...
23.开关电源干扰控制的EMC改善措施
开关电源干扰控制的EMC改善措施 1. 开关电源的EMI干扰机理2. 钳位抑制EMI3. 阻容吸收抑制EMI4. 波形整形抑制EMI 1. 开关电源的EMI干扰机理 2. 钳位抑制EMI 只能抑制Ts阶段。 3. 阻容吸收抑制EMI 4. 波形整形抑制EMI...
新能源汽车声纹监测技术的发展趋势是什么?
新能源汽车声纹监测技术有以下发展趋势: 智能化与自动化程度不断提高 故障自动诊断与预警:未来声纹监测系统将能够更加准确地自动识别和分析新能源汽车各部件的声纹特征变化,不仅能检测出故障,还能对故障的发展趋势进行预测&…...
如何获取按关键字搜索京东商品详情(代码示例)
在电商领域,获取京东商品的详细信息对于市场分析、选品上架、库存管理和价格策略制定等方面至关重要。京东作为国内知名的电商平台,提供了丰富的商品资源。通过 Python 爬虫技术,我们可以高效地获取京东商品的详细信息,包括商品名…...
C#中构造器及属性的加载顺序
一.基本原则: 先加载静态构造函数和静态字段,后加载普通构造函数和普通字段;先加载基类再加载子类; 二.具体的加载顺序: 父类静态字段--->父类静态构造函数--->子类静态字段--->子类静态构造函数--->父类实例字段---> 父类实例构造函数--->子类实例字段-…...
vue项目中如何使用markdown编辑器
在开发中,编辑markdown和回显markdown都是常见的需求。在vue(2.x和3.x都可以)中可以使用mavon-editor这个第三方依赖包。示例很简单易懂。 安装 npm install mavon-editor 注册 在main.js中注册这个组件 import Vue from vue import mavonEditor from mavon-editor impor…...
Python爬虫(9)Python数据存储实战:基于pymysql的MySQL数据库操作详解
目录 一、背景与核心价值二、pymysql核心操作详解2.1 环境准备2.2 数据库连接与基础操作2.3 事务处理与错误回滚2.4 高级功能:批量插入与性能优化 三、pymysql进阶技巧3.1 连接池管理(推荐使用DBUtils)3.2 SQL注入防御3.3 与ORM框架对比 四、…...
WPF之Button控件详解
文章目录 1. 引言2. Button控件基础Button类定义 3. Button控件的核心属性3.1 Content属性3.2 IsDefault属性3.3 IsCancel属性3.4 其他常用属性 4. 按钮样式与模板自定义4.1 简单样式设置4.2 使用Style对象4.3 触发器使用4.4 使用ControlTemplate完全自定义4.5 按钮视觉状态 5.…...
如何查看电脑电池使用情况
第一步打开cmd: 在键盘上按下winr 或者在搜索框中输入cmd 点击命令提示符 进入命令框 第二步输入命令: powercfg/batteryreport 出现如下情况 第三部找到对应电池报告进行查看: 在对应路径下找到电池报告 点击battery-report.html 到此…...
软考-软件设计师中级备考 6、数据结构 图
1. 有向图 有向图是由顶点集合 V 和有向边集合 E 组成的图结构。在有向图中,边是有方向的,即从一个顶点指向另一个顶点,通常用有序对 (u, v) 表示,其中 u 是边的起始顶点,v 是边的终止顶点。例如,在一个表…...
Label Studio 软件介绍及安装使用说明
背景说明 在做AI项目建模的时候,往往需要数据标注工作,比较常用的数据标注软件是Labeling或者Labelme,这两个都是离线的单独标注软件,使用起来是比较方便的,也是入门级学者比较适合的软件,然而有时候我们数据标注的数据…...
Azure 数字孪生是什么?
“Azure 数字孪生”是一项平台即服务 (PaaS) 产品/服务,它能够创建基于整个环境的数字模型的孪生图,这些图可能是建筑物、工厂、农场、能源网络、铁路、体育场馆,甚至整个城市。 这些数字模型可用于获取洞察力,以推动产品改进、运…...
界面控件DevExpress WPF v25.1预览 - AI功能增强(语义搜索)
DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...
【神经网络与深度学习】五折交叉验证(5-Fold Cross-Validation)
引言 五折交叉验证(5-Fold Cross-Validation)是一种广泛应用于机器学习模型性能评估的技术,通过多次实验确保模型的评估结果更加稳定、可靠,同时最大限度地利用有限的数据资源。它将数据分成若干子集,交替作为训练集和…...
Linux权限概念讲解
1. 用户类型 1.1 用户分类 在Linux里面用户分为两类,一种是超级用户(root),一种是普通用户。 超级用户只有一个,而普通用户可以有很多个。 如果我们在root用户状态下想要变成普通用户,我们可以使用命令…...
网络安全零基础培训 L1-8 PHP基础语法
文章目录 1 认识PHP1.1 PHP简介1.2 主要的特点1.3 跨平台性1.4 与数据库的良好集成1.5 开源和社区支持1.6 应用场景1.6.1 网站开发1.6.2 内容的管理程序1.6.3 Web应用程序开发1.6.4 为什么学习了解PHP 2 PHP的基础语法2.1 创建第一个PHP程序2.2 如何写注释2.3 PHP的变量2.4 PHP…...
鸿蒙 长列表加载性能优化
长列表加载性能优化 针对长列表加载这一场景,对列表渲染时间、页面滑动帧率、应用内存占用等方面带来优化,提升性能和用户体验的手段有如下 4 种: 懒加载:提供列表数据按需加载能力,解决一次性加载长列表数据耗时长、…...
第十二届蓝桥杯 2021 C/C++组 卡片
目录 题目: 题目描述: 题目链接: 思路: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: 卡片 - 蓝桥云课 思路: 思路详解&#…...
vscode 使用gitcode团队管理项目
1、下载安装vscode https://code.visualstudio.com/Download 2、安装git 3、在vscode中安装GitLens插件 4、打开终端 点击会显示当前更改的项目 5、提交更改的文件,会提示输入用户名、密码,这里的密码即是令牌,令牌在第一次创建的时候显…...
uniapp+vue3+ts 使用canvas实现安卓端、ios端及微信小程序端二维码生成及下载
加粗样式uniapp多端生成带二维码海报并保存至相册的实现 在微信小程序开发中,我们常常会遇到生成带有二维码的海报并保存到手机相册的需求,比如分享活动海报、产品宣传海报等。今天就来和大家分享一下如何通过代码实现这一功能。 准备工作 在开始之前&am…...
vue mixin混入与hook
mixin混入是 选项式 API,在vue3-Composition API <script setup> 中无法直接使用,需通过 setup() 函数转换 vue2、vue3选项式API: // mixins/mixin.js export const mixin {methods: {courseType(courseLevel) {const levelMap {1: 初级,…...
《Masked Autoencoders Are Scalable Vision Learners》---CV版的BERT
目录 一、与之前阅读文章的关系? 二、标题:带掩码的自auto编码器是一个可拓展的视觉学习器 三、摘要 四、核心图 五、结果图 六、不同mask比例对比图 七、“Introduction” (He 等, 2021, p. 1) 引言 八、“Related Work” (He 等, 2021, p. 3)相…...
(云计算HCIP)HCIP全笔记(十三)本篇介绍虚拟化技术,内容包含:虚拟化资源、虚拟化过程、I/O虚拟化、虚拟化架构KVM和Xen介绍、主流虚拟化技术介绍
1. 虚拟化资源 1.1 虚拟化对象 CPU虚拟化: 目标是使虚拟机上的指令能被正常执行,且效率接近物理机 内存虚拟化: 目标是能做好虚拟机内存空间之 间的隔离,使每个虚拟机都认为自己拥有了整个内存地址,且效率页能接近物理…...
C++核心编程:类与对象全面解析
C核心编程:类与对象全面解析 大家好!今天我要和大家深入探讨C面向对象编程中最核心的概念:类与对象。👨💻 这是我们迈向高级C开发的第一步,掌握好这部分内容,对未来学习更高级的设计模式和框…...
Linux基础命令和文件系统结构:从入门到实践
目录 1. 引言 2. Linux文件系统结构概述 2.1 根目录 编辑 2.2 常见目录介绍: 1. /home:用户的家目录 2. /etc:存放配置文件的目录 3. /var:可变数据 4. /bin 和 /sbin:常见命令和系统管理工具 5. /tmp&…...
「Mac畅玩AIGC与多模态05」部署篇03 - 在 Mac 上部署本地向量化模型(Embedding Models)
一、概述 本篇介绍如何在 macOS 环境下,为 Dify 平台部署本地向量化模型(Embedding Models),支持知识库文档向量化、语义检索与智能体上下文增强。向量化模型是实现知识库问答与 RAG(检索增强生成)应用的基础组件。 二、部署流程 1. 环境准备 确认 Docker Desktop 正常…...
Java-Optional类
介绍 Optional是 Java 8 引入的一个类,用于解决空指针异常问题。它本质上是一个容器类,可以包含或不包含一个非空值。 示例 创建Optional对象 Optional.of(T value):创建一个包含非空值的Optional对象。如传入null值,会抛出Nu…...
Android 热点开发调试总结
Android 热点开发调试总结 文章目录 Android 热点开发调试总结一、前言二、热点开发1、开关和默认配置wifi和热点配置信息保存的位置: 2、主要流程3、相关日志4、相关广播5、demo示例 三、其他1、Android 热点开发调试小结2、其他热点相关知识小结(1&…...
【“星瑞” O6 评测】 — llm CPU部署对比高通骁龙CPU
前言 随着大模型应用场景的不断拓展,arm cpu 凭借其独特优势在大模型推理领域的重要性日益凸显。它在性能、功耗、架构适配等多方面发挥关键作用,推动大模型在不同场景落地 1. CPU对比 星睿 O6 CPU 采用 Armv9 架构,集成了 Armv9 CPU 核心…...
快乐数(双指针解法)
题目链接202. 快乐数 - 力扣(LeetCode) 题目拆解 1 取一个正整数每一位的平方和为,如果为1那么直接可以判定为快乐数,如果不为1,就重复这个过程,直到出现1 2 实际上,这道题只有两种情况…...
【Vue3-Bug】中路由加载页面直接显示空白
Vue3中路由加载页面直接显示空白 没有子路由 路由定义不能重复,请自己查看数据在main.js(或者)mina.ts入口文件中,需要将router的注入到vue中的执行放在,vue挂在元素之前 // 顺序不能变 app.use(router) app.mount(#app)在App.vue中 // 在…...
线性代数——行列式⭐
目录 一、行列式的定义⭐ 1-1、三阶行列式练习 1-2、下面介绍下三角行列式、上三角行列式、对角行列式 编辑 二、行列式的性质 2-1、性质1,2,3,4,5,6 编辑 2-2、性质7 2- 3、拉普拉斯定理、克莱姆法则 三…...
flume----初步安装与配置
目录标题 **flume的简单介绍**⭐flume的**核心组件**⭐**核心特点** **安装部署**1)**解压安装包**2)**修改名字** **(配置文件时,更方便)****3)⭐⭐配置文件**4)**兼容Hadoop**5)**…...
vscode源代码管理Tab-文件右侧标志(M、A 等)的含义
Git 常用标志(M、A 等)的含义 在 VSCode 的源代码管理(Source Control)标签页中,文件右侧显示的 Monaco 装饰徽章(Badge)(如 M、A 等),本质上是对 Git 文件状态标志 的可视化呈现。…...
【力扣刷题实战】丢失的数字
大家好,我是小卡皮巴拉 文章目录 目录 力扣题目:丢失的数字 题目描述 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码(C) 兄弟们共勉 !!! 每篇前言 博客主页:小…...
具身智能机器人的应用场景及最新进展
具身智能机器人正通过“感知-学习-决策-行动”的闭环能力,重塑全球各行业的生产与服务模式。以下是其在当今世界的典型应用场景及最新进展: 一、工业制造:柔性生产与智能运维 高精度装配与检测 特斯拉Optimus通过双目视觉与惯性测量单元&…...
网络安全怎么入门?快速了解
网络安全是一个快速发展的领域,入门需要系统化的学习和实践。以下是适合零基础或转行者的分阶段学习路径,涵盖必备知识、学习资源、实战方法和职业方向: 一、基础阶段(1-3个月) 1. 掌握核心基础知识 计算机网络&#…...