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

C++11——声明

C++11提供了多种简化声明的方式,尤其是在使用模板时。

1. auto

int main() { int a = 1; //auto可以根据赋值推断按类型 auto i = &a; cout << typeid(i).name()<<endl; //会打印出 int * __ptr64 return 0; }

auto主要适用于两个场景:
1. 范围for使用auto
2. 类型名太长时使用auto

2.decltype

2.1 推导类型的方式:typeid

int main() { //推导类型: //1.typeid int i = 1; double j = 1.1; cout << typeid(i).name() << endl; cout << typeid(j).name() << endl; //typeid取到的是类型的 字符串,把类型以字符串的形式获取到 //typeid(i).name() i1; //但它不能用来再去定义变量,因为它只是一个字符串 auto d = i; //使用auto可以再定义 return 0; }

但是会有这样一个场景:想要获取i*j的类型作为 vector的模板参数,如何做到?

( i*j 的类型:会发生类型提升,是double类型)

2.2 推导类型的方式:decltype

int main() { //推导类型: //2.decltype int i = 1; double j = 1.1; auto ret = i * j; vector<decltype(ret)> v; v.push_back(1); v.push_back(1.1); for (auto e : v) { cout << e << " "; }//cout 默认输出 double 时会 省略末尾的 .0(如果小数部分为 0)。 //decltype可以推导对象的类型,并且这个类型可以使用 //用来做模板实参,或是用来实例化对象 decltype(ret) x; return 0; }

3.nullptr

由于C++中NULL被定义成字面量0,这样就可能会带来一些问题,因为0既能表示指针常量,又能表示整形常量。所以出于清晰和安全的角度考虑,C++11中新增了nullptr,用于表示空指针。

#ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif
http://www.jsqmd.com/news/477208/

相关文章:

  • 写字基本功 - 阿拉伯数字
  • 随笔:家庭组网优化[光猫与路由连接,增加室内WiFi信号覆盖]
  • 大数据-246 离线数仓 - 电商分析 Hive 拉链表实战:初始化、每日增量更新、回滚脚本与错误排查
  • 3.7-STL(七)(map篇)
  • Qcom平台通过Hexagon IDE 测试程序性能指导
  • 如何快速实现prettier-vscode多语言界面配置:终极国际化指南
  • 2026年PPR堵头优质源头厂家推荐,哪家性价比高 - 工业设备
  • 2026年泸县黄金回收机构排名,黄金回收免费上门正规商家全解析 - 工业品牌热点
  • Linux 环境变量详解
  • 如何为AppManager贡献代码:完整的Android应用管理项目开发者指南
  • Ant Design Blazor 快速创建项目
  • Mysql 中数据主键类型不一样导致数据插入速度快慢问题
  • 5个必学的AST Explorer使用技巧:快速掌握代码分析神器
  • 如何从源码构建Sigil:跨平台EPUB编辑器的完整指南
  • 【01最短路 BFS】1368. 使网格图至少有一条有效路径的最小代价
  • RLHF在多模态领域的应用:MM-RLHF框架与视觉语言模型对齐技术
  • Taming Transformers完整贡献指南:10个技巧助你成为AI图像合成专家
  • Dolt:将Git与数据库完美结合的开源项目
  • Redis 的用途
  • 如何快速掌握Embark框架:从代码规范到贡献流程的完整指南
  • Vue3商城移动端调试终极指南:Chrome DevTools与Vue DevTools实战技巧
  • Dolt:数据版的Git,让数据库管理更智能
  • Prisma与监控系统:10个性能指标收集和应用监控实现终极指南
  • Gorilla合作伙伴计划:API提供商如何接入生态系统
  • OCRmyPDF与文档扫描标准:符合ISO 19005(PDF/A)的处理
  • 用UE5 Multi-User Editing实现远程团队协作:公网部署+会话管理全流程解析
  • 如何快速掌握AppManager:10个实用技巧提升Android管理效率
  • LeetCode 热题 100 之 215. 数组中的第K个最大元素 347. 前 K 个高频元素 295. 数据流的中位数
  • SecretVault强网杯2025 Web题解:从JWT绕过到HTTP头注入的实战剖析
  • sc-im配置与自定义:打造属于你的终端表格工作流