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

C++笔记(基础)动态内存管理 auto,decltype关键字

c++的动态内存管理

new :作用与malloc相仿
delete:作用与free相仿

对于内置类型new / delete / malloc / free可以混用。区别 :

1、new / delete 是C++中的运算符。malloc / free是函数。
2、malloc申请内存空间时,手动计算所需大小,new只需类型名,自动计算大小;
3、malloc申请的内存空间不会初始化,new可以初始化;
4、malloc的返回值为void*, 接收时必须强转,new不需要;
5、malloc申请内存空间失败时,返回的是NULL,使用时必须判空;
new申请内存空间失败时抛出异常,所 以要有捕获异常处理程序;
用法:
int* ptr = new int//(分配一个int类型的内存空间)
  • ptr = 10;
int* arr = new int[5]//分配一个包含5个int元素的数组
delete ptr;
ptr = nullptr;

auto(自动类型推导)

auto a = 10;(a自动被推导成int)
但是必须对变量进行初始化,不然无法判断变量是什么类型
不能作为函数参数类型
不能推导数组类型(除非引用)
不能用于类的非静态成员变量

decltype(间接推导)

用法
int a = 10;
decltype(a)x;//x被推导成int
int add(int a, int b);//在main外面写这个函数
decltype(add(1, 2)) p;//在main里:推导函数的返回类型,p被推导成int
在模板编程中,decltype 非常有用。它可以帮助处理一些依赖于模板参数的类型。例如:
#include
template
auto add(T a, U b) -> decltype(a + b) {
return a + b;
}
int main() {
int num1 = 5;
double num2 = 3.5;
auto result = add(num1, num2); // result的类型根据a + b推导,这里为double
std::cout << result << std::endl;
return 0;
}
在上述模板函数 add 中,使用 decltype(a + b) 来指定函数的返回类型,
使得函数的返回类型能够根据传入参数的类型动态推导。

与 auto 的区别

auto 和 decltype 都用于类型推导,但有明显区别:

auto 根据初始化表达式的值来推导变量的类型,并且要求变量必须初始化。 例如 auto var = 10;var 的类型由 10 推导为 int。

decltype是根据表达式的形式来推导类型,不要求对变量进行初始化,它更侧重于获取表达式的类型信息。 例如 int x; decltype(x) y;y 的类型被推导为 int,即使 x 只是声明未初始化。

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

相关文章:

  • 申请网站沈阳网站建设招标公司
  • 网站统计 中文域名建站之星极速版
  • python中Pydantic学习笔记
  • 网站域名注册机制网站建设公司包括哪些板块
  • 华为昇腾 CANN 算子仓开源上线 GitCode,加速 AI 开发生态共建
  • 广东建站网站怎么做结算
  • 河南省建设厅陈华平官方网站制作公司主页网站
  • 精美化妆品网站模板博达网站建设怎么建立下载
  • 网站如何做分布式wordpress始终无法登录
  • NAT44性能测试详解:应对IPv4地址枯竭的关键利器
  • 一个网站可以做多少个关键词wordpress会员发布文章
  • 敏感网站用什么浏览器重庆市最新新闻
  • 怎么用自助网站订阅 wordpress
  • 国外优秀论文网站郑州新闻
  • [DAX] 新建列
  • 【高等数学】第十二章 无穷级数——第五节 函数的幂级数展开式的应用
  • 深圳品牌网站制作平台企业网站报价表
  • 网站制作开票几个点美团网站除佣金表格怎么做
  • 正规网站建设东莞短视频制作公司
  • 2018年网站建设阿里云电影网站建设教程
  • 【Qt】QWidget 详解
  • 杭州网站建设招聘网站后台收入怎么做会计分录
  • 网站开发已有的知识储备流量神器
  • cin获取string注意点
  • 星沙做淘宝店铺网站山东泰润建设集团网站
  • mip织梦手机网站模板如何做餐饮的网站
  • C++ 6种构造函数简化记忆
  • vscode中编写c++程序
  • 深圳企业网站建设与设计制作中安消防安全网站建设
  • 电商网站 设计方案网站开发与维护岗位说明书