C++ auto与for

打印 上一主题 下一主题

主题 1003|帖子 1003|积分 3009

目次

一、媒介
二、正文 
1.1 auto关键字
1.1.1 auto的使用
2.1 范围 for
2.1.1 范围for的使用
3.1 auto与范围for的搭配使用
三、结言


一、媒介

   本日所分享的是auto和范围for。
  二、正文 

1.1 auto关键字

   

  • 早期C/C++中auto的寄义是:使用auto修饰的变量,是具有自动储存器的局部变量,后来这个不重要了。C++11中,尺度委员会变废为宝赋予了auto全新的寄义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。
  • 用auto声明指针类型时,用auto和auto*没有任何区别,但用auto声明引用类型时则必须加&。
  • 当在同一行声明多个变量时,这些变量必须是雷同的类型,否则编译器将会报错,因为编译器实际只对第一个类型举行推导,然后用推导出来的类型定义其他变量。
  • auto不能作为函数的参数,可以做返回值,但是建议审慎使用。
  •  auto不能直接用来声明数组。
  1.1.1 auto的使用

   

  从上面我们可以看出其实auto的作用就是自动辨认变量的类型。
  

  • 同时auto还可以作为函数的返回值:
  

  

  • 但是恶心的是,auto不能作为函数的参数,以及不能用来声明数组和不能声明没有初始化的变量:
  

  

  
  2.1 范围 for

   

  • 对于一个有范围的集合而言,由步伐员来说明循环的范围是多余的,有时候还会容易犯错误。因此C++11中引入了基于范围的for循环。for循环后的括号由冒号”:“分为两部分:第一部分是范围内用于迭代的变量,第二部分则表现被迭代的范围,自动迭代,自动取数据,自动判定结束。
  • 范围for可以作用到数组和容器对象上举行遍历
  • 范围for的底层很简单,容器遍历实际就是替换为迭代器,这个从汇编层也可以看到。 
  2.1.1 范围for的使用

   

  
  

  • 只遍历,不改变原数组数据写法:
  

  

  •  既遍历,又改变数组数据写法:
  

  3.1 auto与范围for的搭配使用

   
 auto可以与范围for搭配使用,食用效果最佳。
  三、结言

   
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表