C++自动类型推断和基于范围的for循环

在C++11之前,auto关键字用来指定存储期。在新标准中,它的功能变为类型推断。auto现在成了一个类型的占位符,通知编译器去根据初始化代码推断所声明变量的真实类型,这样可以让我们的代码更加简洁。 auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念。

例如:

auto还可以作为返回值占位符

C++11也可以使用类似”foreach”的语法遍历容器。用这个新的写法,可以遍历C类型的数组、初始化列表以及任何重载了非成员的begin()和end()函数的类型。如果你只是想对集合或数组的每个元素做一些操作,而不关心下标、迭代器位置或者元素个数,那么这种for循环迭代将会非常有用。例如上面的map对象:

字符串中有多少标点符号

参考:
《C++ Primer》
C++11中的自动类型推断和基于范围的for循环 http://blog.csdn.net/huang_xw/article/details/8760403

Posted in C|C++, Dev.