当前位置: 首页 > 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.cnnetsun.cn/news/1284571.html

相关文章:

  • 【JEECG 组件扩展】JSwitch开关组件扩展单个多选框样式
  • 终极Go-callvis实战指南:深度分析Syncthing、Docker等知名项目调用图
  • 终极指南:如何通过Docker容器化快速部署Trump2Cash股票交易机器人
  • 批量无人值守装机(使用cobbler批量安装windows)
  • 超详细!网络安全入门到精通,这一篇就够了(附学习路线)
  • MATLAB图像去阴影实战:如何用高斯模糊拯救你的背光照片(附完整代码)
  • 从游戏加速到跨国办公:三大运营商骨干网对个人用户的实际影响与优化技巧
  • 差分进化算法:从理论到实战的全局优化利器
  • 职场汇报优先级工具,按重要紧急,领导关注度,难度排序,输出先做哪些工作的清单。
  • 手把手教你修复Flutter中的SocketException: Connection failed错误(macOS/iOS版)
  • 科研党必备:用Zotero+坚果云打造跨设备论文库(附手机端解决方案)
  • 昇腾AI处理器与主流操作系统内核版本兼容性指南
  • 解密电商大数据标签平台的核心架构与实战应用
  • Ardupilot与Gazebo仿真中无人机解锁后无法起飞的深度排查与解决方案
  • 【网络】Ikuai虚拟机部署Openwrt旁路由全流程解析(附避坑指南)
  • Android FRP分区与OEM解锁的底层关联机制解析
  • 数字后端设计中的Congestion分析:从Overflow到Hotspot的全面评估
  • 117 Excel自定义转换器深度实战
  • Vue-Grid-Layout避坑指南:从零搭建可拖拽管理后台的常见问题解决
  • 知识表示避坑指南:为什么你的NLP项目需要本体论?从ChatGPT的局限性说起
  • Windows下用MSYS2编译flashrom 1.3全攻略(支持FTDI等主流编程器)
  • Matlab报错‘eval‘与‘workspacefunc‘的连环坑:如何一步步修复pathdef.m文件
  • Chrome调试H5移动端全攻略:从Android到iOS的完整避坑指南
  • Mac用户福音:无需Root实现Android屏幕共享与远程控制的完整指南(附常见问题解决)
  • VsCode LiveServer插件配置全攻略:从安装到手机调试一步到位
  • sd预览模式终极指南:安全修改文件的最佳实践
  • Flight组件通信的7种高效事件处理方式:终极指南
  • 如何快速实现React-Draft-Wysiwyg与TypeScript集成:打造类型安全的富文本编辑器
  • Snappy跨平台开发终极指南:解决大端序和小端序兼容难题的5个实用技巧
  • HarmonyOS Media Library Kit 媒体文件管理开发指南