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

C++17新特性 类型推导

在传统C和C++中,参数的类型都必须明确定义,这其实对我们快速进行编码没有任何帮助,尤 其是当我们面对一大堆复杂的模板类型时,必须明确的指出变量的类型才能进行后续的编码,这不仅拖 慢我们的开发效率,也让代码变得又臭又长。 

        C++11引入了auto和decltype这两个关键字实现了类型推导,让编译器来操心变量的类型。这 使得C++也具有了和其他现代编程语言一样,某种意义上提供了无需操心变量类型的使用习惯。

/在C++11之前,由于cbegin()将返回vector<int>::const_iterator类型,因此iter页应该是vector<int>::const_iterator类型
//for (vector<int>::const_iterator iter = v.cbegin(); iter != v.cend(); ++iter) {//   cout << *iter << endl;
//}//在C++11之后,使用auto进行类型推导
#include <iostream>
#include <vector>
#include <initializer_list>class MagicFoo{public:std::vector<int> vec;MagicFoo(std::initializer_list<int> init) {for (auto it = list.begin(); it != list.end(); ++it) {vec.push_back(*it);}}
};int main() {MagicFoo foo = {1, 2, 3, 4, 5};// 使用auto进行类型推导for (auto iter = foo.vec.cbegin(); iter != foo.vec.cend(); ++iter) {std::cout << *iter << std::endl;}return 0;
}

 

相关文章:

  • 【C语言编译与链接】--翻译环境和运行环境,预处理,编译,汇编,链接
  • @Pushgateway配置与使用
  • 工商业储能站能量管理系统
  • 2014药柜设计问题
  • MOT challenge使用方法及数据集说明
  • 我的3种AI写作节奏搭配模型,适合不同类型写作者
  • 【js逆向】某某省过验证码逆向
  • 从印巴空战看数据制胜密码:元数据如何赋能数字战场
  • N2语法 状態
  • for(auto a:b)和for(auto a:b)的区别
  • leetcode动态规划—完全背包系列
  • 一篇文章玩转CAP原理
  • 鸿蒙OSUniApp滑动锁屏实战:打造流畅优雅的移动端解锁体验#三方框架 #Uniapp
  • 无线通信模块简介
  • Vue2 与 Vue3对比
  • Python字典键的使用与应用:从基础到高级实践
  • AWS WAF设置IP白名单
  • Python Day38
  • QT-Creator安装教程(windows)
  • 2.2.2 06年T1
  • flash网站标题和网址/外链生成网站
  • 毕业设计做网站 服务器怎么弄/竞价代运营公司
  • 网站制作用什么/免费推广引流app
  • 运城哪里做网站/友情链接交换的作用在于
  • 水冶那里有做网站的/济南网站运营公司
  • 主机网站/石家庄seo排名外包