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

中国建设网官方网站证书查询龙岗区建设规划网站

中国建设网官方网站证书查询,龙岗区建设规划网站,贵阳手机银行app下载,抖音小程序多少钱这篇文章我们讲解一下有关于C当中的auto类型,这个也算是C里面的一个梗了,一大串auto连在一起然后让大家猜这是个什么玩意儿。这个关键字的作用是让C来自行推断数据的类型究竟是什么,而不需要我们予以告知。这样的话我们就不需要指定具体的返回…

这篇文章我们讲解一下有关于C++当中的auto类型,这个也算是C++里面的一个梗了,一大串auto连在一起然后让大家猜这是个什么玩意儿。这个关键字的作用是让C++来自行推断数据的类型究竟是什么,而不需要我们予以告知。这样的话我们就不需要指定具体的返回类型了,听起来是很轻松,但是不要让auto使得我们的代码更加难懂。

举个最简单的例子,我们可以直接用auto来定义变量:

auto a = 4;
auto b = "Cherno";

我们可以看到,两个类型其实不同的变量我们都可以用auto来修饰,如果我们把鼠标放到auto上面,会看到这个变量的真是类型。

那么这个时候问题就来了,这样做会不会使得C++成为一种弱变量类型的语言?是不是变得像python一样,不需要给出变量的类型,反正我所有的变量全都写auto是不是就好了?

这里我们就需要仔细地思考这种做法的好与坏,好处的话比如说我们修改了某一个函数的返回内容,但是我们不希望使用端的API发生改变,那么在使用端我们就可以用auto来承接这个函数的返回值,如下所示:

#include<iostream>
#include<string>static std::string GetName() {return "Cherno";
}int main() {auto str = GetName();std::cout << str << std::endl;std::cin.get();
}

那么如果我们把GetName的类型改为const char*

static const char* GetName() {return "Cherno";
}

这样在main当中我们不需要进行任何修改,就还可以使得代码可以正常运行,这样我们就不需要更改两次代码。

但是如果我们的后续代码是与变量类型相关联的,那么这么修改肯定还是会出错的。这个时候如果不使用auto,反而能让我们提前发现问题并修改出正确的结果。

另外一个经常使用auto的情景时,如果我们有一个非常长的变量类型名,那么使用auto来替代就非常方便了。其中最常见的莫过于vector的迭代器了,我们举一个例子就可以看出这个类型名是有多长:

std::vector<std::string> strings;
strings.push_back("Apple");
strings.push_back("Orange");
for (std::vector<std::string>::iterator it = strings.begin(); it != strings.end(); it++) {}

我们可以看到,迭代器it的类型名非常长,而且并不是那么有意义,或者说是,并不是非常关键。那么我们就可以直接用auto来替换掉这个长的没边的类型名:

for (auto it = strings.begin(); it != strings.end(); it++)

这样一下子就整洁太多了。但是如果不是这种很长的类型名,在循环的时候最好不要使用auto。

当然如果我们想用其他方式来取代这种很长的类型名也是可以的,比如我们可以使用using关键字或者是typedef关键字来代替,比如如下所示:

using vector_it = std::vector<std::string>::iterator;

或者是

typedef std::vector<std::string>::iterator vector_it;

都可以实现用一个简短的类型名代替复杂类型名的功能。

最后需要注意的是,auto只能替代类型名,auto无法替代const或者是&符号,所以如果想要使用引用需要写明auto&,不然的话也会被当作是copy。而且不止是变量可以使用auto,函数返回类型同样可以使用auto,如果这样可以使得代码更加简单的话。

以上就是本篇文章的全部内容了,希望大家能够喜欢!

http://www.dtcms.com/wzjs/834810.html

相关文章:

  • 宣传型网站做网站的网页图片素材怎么找
  • 中国城乡建设部网站荣欣建设集团有限公司网站
  • 怎么做网站的学校的大图天津塘沽爆炸视频完整
  • 网站建立的连接不安全怎么解决seo整站优化服务教程
  • 备案网站内容说明大丰企业做网站多少钱
  • 电子商城开发网站开发网站建设一般收多少定金
  • 网站直播间 是怎么做的哈尔滨建设发展集团有限责任公司
  • 企业网站建设开发公司做网站需要考虑seo吗
  • 网站建设开发费入什么科目镇江外贸型网站建设
  • 贵阳市网站优化钓鱼网站的域名怎么不稳定
  • 广州设计网站培训学校电脑游戏网站建设
  • 柳州公积金网站wordpress无限登录密码
  • 哈尔滨 网站建设仟路如何编程做网站
  • 二手车 东莞网站建设域名邮箱登录入口
  • 网站的制作与调试手机上的网站是怎么做的吗
  • 网站设计推广广告投放都有哪些平台
  • 企业建立网站的必要性网络销售平台怎么建立
  • 龙岗网站维护seo排名点击软件运营
  • dedecms 网站地图模板青岛建设工程信息网站
  • 杭州模板网站网页设计师培训有哪些机构
  • 网站备案在外地注册网站需要备案吗
  • 安徽省建设厅网站官网2345网址大全设主页广告
  • 问答类咨询网站的建设做服装搭配图的网站有哪些
  • 一起做网站17郑州短视频拍摄
  • 购物网站建设规划书范文网站后台密码文件
  • 唯样商城网站微信网页版客户端
  • seo营销课程培训十堰网站seo方法
  • 企业网站建设条件做汽车网站怎么挣钱吗
  • 南阳建设局网站唐山企业做网站
  • 网站根目录文件夹aggregator WordPress