c++11的一些特性auto和范围for循环
2015-09-13 10:47
477 查看
auto的使用
c++11引入了auto类型说明符,auto让编译器通过初始值来推算变量的类型,所以auto定义的变量必须有初始值。
使用auto也能在一条语句中声明多个变量,因为一条声明语句只能有一个基本数据类型,所以该语句中所有变量的初始基本数据类型都必须一样:
eg: auto i=0,*p=& i; //正确 auto sz=0,pi=3.14;//错误,sz和pi的类型不一样。
范围for循环,遍历给定序列中的每个元素并对序列中的每个值执行某种操作。
范围for循环有两种用法:
c++11引入了auto类型说明符,auto让编译器通过初始值来推算变量的类型,所以auto定义的变量必须有初始值。
使用auto也能在一条语句中声明多个变量,因为一条声明语句只能有一个基本数据类型,所以该语句中所有变量的初始基本数据类型都必须一样:
eg: auto i=0,*p=& i; //正确 auto sz=0,pi=3.14;//错误,sz和pi的类型不一样。
范围for循环,遍历给定序列中的每个元素并对序列中的每个值执行某种操作。
for(declaration:expression) statement
expression 部分是一个对象,用于表示一个序列,declaration部分负责定义一个变量,该变量被用于访问序列中的基础元素,每次迭代declaration部分的变量会被初始化为expression部分的下一个元素值。
范围for循环有两种用法:
string s("hello,world"); decltype(s.size()) punct_cnt=0;//decltype也是c++11特性,用于选择和返回操作数的数据类型。 for(auto c:s)//对于s中的每个字符 if(ispunct(c)) ++punct_cnt;
string s("hello,world"); for(auto &c:s);//对于s中的每个字符,c是一个引用,赋值语句将会改变s中字符的值 c=toupper(c); cout<<s<<endl;
相关文章推荐
- MySQL中的integer 数据类型
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- MySQL 数据类型
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- PostgreSQL教程(四):数据类型详解
- Lua中调用C++函数示例
- Lua学习笔记之数据类型
- 实现Lua中数据类型的源码分享
- Lua教程(一):在C++中嵌入Lua脚本
- Lua数据类型介绍
- Lua教程(二):C++和Lua相互传递数据示例
- SQL 研究 相似的数据类型
- 详解SQLite中的数据类型
- PowerShell中使用GetType获取变量数据类型
- c# 数据类型占用的字节数介绍
- C#难点逐个击破(6):C#数据类型与.net framework数据类型
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- C++联合体转换成C#结构的实现方法