从c到c++的升级

1.声明定义
C++可以在需要使用时再定义

2.register关键字的升级
·C++中可以取得register变量的地址

3.const关键字
·const修饰的变量不可变,也不可通过空间修改,即常量看待。当碰见常量声明时在符号表中放入常量

4.内存分配与释放(new/delete)

变量申请
Type * pointer = new Type;
//——-
delete pointer;
数组申请
Type *ptr = new Type[100];
//————-
delete[] ptr;

·new与malloc的区别:

A.new是C++的一部分,malloc由C库tigong
B.New以具体类型为单位进行内存分配,malloc智能以字节为单位进行内存分配
C.New在申请变量时可以进行初始化,malloc不具备内存初始化的特性
初始化:int *ptr = new int(5);
*p=5;
二维数组的定义:int (*pp)[6]=new int[6][6];
三维数组的定义:int (*ppp)[6][6]=new int[6][6][6];

5.引用 VS 指针
1)引用:引用是给一个变量起别名,例如:int a=1;int &b = a;//b是a的别名,因此a,b是同一个单元
a.定义引用时一定要注意初始化,指明该引用变量是谁的别名
b.在实际应用中,引用一般用作参数传递与返回值
2)Const引用:const的引用必须指向const

const int a=1;
const int &b=a;//true;
int &c = a;//error

3)函数传参:按引用传递

void add(int &num)
{
    //--------------
}
int main()
{
    int num=1;
    add(num);
}

4)函数返回值:引用作为函数返回值
不能返回对局部变量的引用
5)引用与指针的区别

引用访问一个变量是直接访问,而指针是间接访问
引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有自己的内存空间
引用一经初始化不能再引用其他变量,而指针可以。
尽可能使用引用,不得已使用指针

6.函数升级
1)内联函数(inline)
A.内联函数调用时,要求实参和形参的类型一致,另外内联函数会对实参表达式进行求值,然后传递给形参;而宏调用只用实参简单的替换形参
B.内联函数是在编译的时候,在调用的地方将代码展开的,而宏则是在预处理时进行替换的
C.在C++中建议采用inline函数来替换带参数的宏
2)函数重载
相同的作用域,如果两个函数名称相同,而参数不同,我们把它们称为重载overload
函数重载的不同形式:

·形参数量不同
·形参类型不同
·形参的顺序不同
·形参数量和形参类型都不同

3)带默认参数的函数
函数没有声明时,声明时指定后,定义就不能再指定默认值
默认值的定义必须遵守从右到左的顺序,如果某个形参没有默认值,则他左边的参数就不能有默认值

【路径规划】(螺旋)基于A星全覆盖路径规划研究(Matlab代码实现)内容概要:本文围绕“基于A星算法的全覆盖路径规划”展开研究,重点介绍了一种结合螺旋搜索策略的A星算法在栅格地图中的路径规划实现方法,并提供了完整的Matlab代码实现。该方法旨在解决移动机器人或无人机在未知或部分已知环境中实现高效、无遗漏的区域全覆盖路径规划问题。文中详细阐述了A星算法的基本原理、启发式函数设计、开放集与关闭集管理机制,并融合螺旋遍历策略以提升初始探索效率,确保覆盖完整性。同时,文档提及该研究属于一系列路径规划技术的一部分,涵盖多种智能优化算法与其他路径规划方法的融合应用。; 适合人群:具备一定Matlab编程基础,从事机器人、自动化、智能控制及相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于服务机器人、农业无人机、扫地机器人等需要完成区域全覆盖任务的设备路径设计;②用于学习和理解A星算法在实际路径规划中的扩展应用,特别是如何结合特定搜索策略(如螺旋)提升算法性能;③作为科研复现与算法对比实验的基础代码参考。; 阅读建议:建议结合Matlab代码逐段理解算法实现细节,重点关注A星算法与螺旋策略的切换逻辑与条件判断,并可通过修改地图环境、障碍物分布等方式进行仿真实验,进一步掌握算法适应性与优化方向。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值