static_cast dynamic_cast const_cast reinterpret_cast 类型转换

本文详细介绍了C++中四种类型转换的方式:static_cast、dynamic_cast、const_cast 和 reinterpret_cast,并探讨了它们的应用场景及注意事项。

显式类型转换(强制类型转换):

     任何非const数据类型的指针都可以被赋值给void*型的指针,但是不可以把void*类型指针直接赋值给某种类型的指针,必须先换成相应的类型。显式转换的一般形式: cast-nanme< type >( expression ); 如: double dval; int ival; ival += static_cast< int >( dval );

  1. static_cast:编译器隐式执行的任何类型转换都可以由static_cast显式完成。使用时,注意隐患。如:(1):将void* 转换成某种类型的指针 (2):数值 转换成 枚举 (3):基类 转换成 派生类的指针或引用     
  2. dynamic_cast:支持在运行时刻识别由指针或引用指向的类对象,如果运行时,子类的指针赋值给了父类,那么pChildVal为非零,否则pChildVal为零值。                                                                                    子类 *pchild = dynamic_cast< 子类 *>( 父类指针 ) if ( pchildVal = dynamic_cast< BaseClass * >( pBaseValue ) ) { //... } 向下面的引用方式不建议使用,因为失败会产生异常 if ( programmer &pm = dynamic_cast< programmer& >( pe ) )
  3. const_cast:将转换表达式的常属性(以及volatile对象的volatile性) 有const属性的变量不可以直接赋值给没有const属性的变量,但是反过来可以。
  4.  reinterpret_cast:对于操作数的位模式执行一个比较低层次的重新解释,很大程度上依赖于程序员的主动管理。

 

数据集介绍:垃圾分类检测数据集 一、基础信息 数据集名称:垃圾分类检测数据集 图片数量: 训练集:2,817张图片 验证集:621张图片 测试集:317张图片 总计:3,755张图片 分类类别: - 金属:常见的金属垃圾材料。 - 纸板:纸板类垃圾,如包装盒等。 - 塑料:塑料类垃圾,如瓶子、容器等。 标注格式: YOLO格式,包含边界框和类别标签,适用于目标检测任务。 数据格式:图片来源于实际场景,格式为常见图像格式(如JPEG/PNG)。 二、适用场景 智能垃圾回收系统开发: 数据集支持目标检测任务,帮助构建能够自动识别和分类垃圾材料的AI模型,用于自动化废物分类和回收系统。 环境监测与废物管理: 集成至监控系统或机器人中,实时检测垃圾并分类,提升废物处理效率和环保水平。 学术研究与教育: 支持计算机视觉与环保领域的交叉研究,用于教学、实验和论文发表。 三、数据集优势 类别覆盖全面: 包含三种常见垃圾材料类别,覆盖日常生活中主要的可回收物类型,具有实际应用价值。 标注精准可靠: 采用YOLO标注格式,边界框定位精确,类别标签准确,便于模型直接训练和使用。 数据量适中合理: 训练集、验证集和测试集分布均衡,提供足够样本用于模型学习和评估。 任务适配性强: 标注兼容主流深度学习框架(如YOLO等),可直接用于目标检测任务,支持垃圾检测相关应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值