C++11特性——基于范围的for语句

    在使用标准库容器时,我们常常需要进行遍历操作,而我们用以遍历的方法一般就是使用迭代器(对于某些特殊容器,我们还可以使用索引进行遍历)。在C++11标准推出之前,或许这些办法都还比较方便,但现在,C++11赋予了我们一种更简单的遍历方法——范围for(range for),范围for主要用于对某种序列进行遍历操作。

    范围for,是一种基于“范围”的for语句,所谓范围:即是我们能够明确指出起始点和终点,位于起始点与终点之间的区域就是范围。比如vector,它具有begin和end,而在begin和end之间的区域,则是它所包含的元素。范围for的形式如下:

    for (declaration : expression)

    {

          /* ... */

    }

其中declaration是一个定义,它的类型是序列元素的类型,冒号后的表达式则是需要遍历的序列。范围for执行时,每迭代一次,declaration的内容都将被赋值为序列中的下一个元素,如此,在范围for内部,我们就可以执行一些我们需要的操作了(如果需要改变序列内部元素,则需要将declaration定义为引用)。

    vector<int> vi;

    for (int i = 0; i < 10; i++)

          vi.push_back(i);

    for (int i : vi)

    { cout << i << " " << ends; }

    如上述代码,我们就可以将一个vector对象内部元素逐一输出了。但这里我们需要注意一个问题,范围for是不能用于为序列添加元素的,范围for的范围是需要能明确确定的,如果可以用它来添加元素,那这就前后矛盾了。

    对于范围for,其实它不仅能作用于标准库容器,同样,它也能作用与数组,毕竟数组的范围也是明确的。

    本文旨在介绍范围for最基本的用法,其实对于范围for,当搭配上另一种C++11特性之后,它会变得更方便。相关内容将在下文中呈现,敬请期待!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值