C++11新标准之范围for语句

简介: C++11新标准之范围for语句

说起for语句,我们都不会陌生,因为在循环中经常会用for语句来遍历一些数组什么的,就形如以下的for循环,是我们最常见的:

  for (int i = 0; i < 5; i++)
  {
    cout << i << endl;
  }

范围for语句可以遍历容器或者其他序列的所有元素。以下用一个小小的代码测试片段说明一下这个新特性的使用方法:

    /*传统写法,遍历每个string类型的字符*/
  string str("hello world");
  for (int i = 0; i < str.size(); i++)
  {
    cout << str[i] << endl;
  }

image.png


  /*范围for循环*/
  string str("hello world");
  for (auto c : str)
  {
    cout << c << endl;
  }

image.png

由以上两个图可以看到,输出的结果是一样的,但是for循环的用法却是不同的,第二种写法显然更便捷,也可以有效防止数组越界。因为c++对于标准库中这些类型,并不会检验下标是否合法,一旦使用了一个超出范围的下标,会产生不可预知的后果。所以使用新标准的范围for循环,对于安全性应该也是更好的。


“秋风萧瑟天气凉,草木摇落露为霜,群燕辞归雁南翔。”—曹丕《燕歌行》


目录
相关文章
|
程序员 编译器 C语言
【C++要笑着学】内联函数 inline | auto关键字(C++11) | 范围for | 关键字 nullptr(二)
本章将继续讲解C++入门部分的知识,将对内联函数、改版后的auto关键字、范围for,以及指针空值nullptr 等知识点进行讲解。
121 0
【C++要笑着学】内联函数 inline | auto关键字(C++11) | 范围for | 关键字 nullptr(二)
|
存储 安全 编译器
【C++要笑着学】内联函数 inline | auto关键字(C++11) | 范围for | 关键字 nullptr(一)
本章将继续讲解C++入门部分的知识,将对内联函数、改版后的auto关键字、范围for,以及指针空值nullptr 等知识点进行讲解。
161 0
【C++要笑着学】内联函数 inline | auto关键字(C++11) | 范围for | 关键字 nullptr(一)
|
存储 安全 编译器
C++程序设计——内联函数、auto、范围for循环、nullptr
C++程序设计——内联函数、auto、范围for循环、nullptr
174 0
C++程序设计——内联函数、auto、范围for循环、nullptr
|
程序员
C+++——基于范围的for循环
如标题字面意思,就是要基于范围,for循环
142 0
|
存储 安全 编译器
【C++】C++入门 --- 命名空间 | 输入输出 | 缺省函数 | 函数重载 | 引用 | 内联函数 | auto关键字 | 基于范围的for循环 | 指针空值
命名空间 | 输入输出 | 缺省函数 | 函数重载 | 引用 | 内联函数 | auto关键字 | 基于范围的for循环 | nullptr
180 0
【C++】C++入门 --- 命名空间 | 输入输出 | 缺省函数 | 函数重载 | 引用 | 内联函数 | auto关键字 | 基于范围的for循环 | 指针空值
|
C++ 编译器
C/C++中各种类型int、long、double、char表示范围(最大最小值)
来源:http://blog.csdn.net/xuexiacm/article/details/8122267 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main(...
1239 0
|
C++
C++各种数据类型表示范围
转自:http://www.cnblogs.com/maowang1991/p/3166928.html #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;limits&gt; using namespace std; int main() { cout &lt;&lt; "type: \t\t" &lt
1155 0
|
容器 C++ Python
C++11的for循环,以及范围Range类的实现
C++11支持range-based for循环。这是一个很方便的特性,能省挺多代码。以下代码就能很方便的遍历vector中的元素,并打印出来: 1 2 3 4 5 6 7 8 std::vector int_vec; int_vec.
1091 0