C++ 范围for循环

1. 在C98中,不同的容器和数组,遍历的方法不尽相同,写法不统一,也不够简洁,而C++11基于范围的 for循环以统一、简洁的方式来遍历容器和数组,用起来更方便了。

 C++ 容器都有哪些 简单介绍:

//STL  C++标准库
#include<vector> //动态数组   seqlist
#include<array>  //静态数组   容量不能扩大
#include<list>   //双循环链表

#include<map>     //关联式容器
#include<unordered_map>  //hash_table
#include<set>    //rbtree
#include<unordered_set>     //hash_table

 以下是基于范围的 for 循环的一股格式:

ElemType: 是范围变量的数据类型。它必须与数组(容器)元素的数据类型一样,或者是数组元素可以自动转换过来的类型。
val:是范围变量的名称。该变量将在循环迭代期间依次接收数组中的元素值。在第一次循环迭代期间,它接收的是第一个元素的值;在第二次循环迭代期间,它接收的是第二个元素的值;以此类推
array: 是要让该循环进行处理的数组 (容器)的名称。该循环将对数组中的每个元素迭代一次statement: 是在每次循环迭代期间要执行的语句。要在循环中执行更多的语句,则可以使用一组大括号来包围多个语句。与其他循环体一样,可以用continue来结束本次循环,也可以用break来跳出整个循环。

2.在C++中遍历一个数组 (容器) 的方法 般是这样的

int main()
{
    int ar[] = { 1,2,3,4,5,6,7,8,9,10 };
    int n = sizeof(ar) / sizeof(ar[0]);
    for (int i = 0; i < n; ++i)
    {
        cout << ar[i] << " ";
    }
    cout << endl;


    //范围for
    for (int x : ar)    //容器
    {
        cout << x << " ";
    }
    cout << endl;

}

 

 

int main()
{
    int ar[] = { 1,2,3,4,5,6,7,8,9,10 };
    for (auto &x : ar)     //通过引用获取能够改变数组的值
    {
        cout <<(x+=100) << " ";

    }
    cout << endl;
    for (auto x : ar)    //没有对容器的值进行修改
    {
        cout << x << " ";

    }
    cout << endl;
}

 

 

 

 在C++11基于范围的for循环

 

  3.基于范围的for一般与auto结合

 

 可以用auto 自动推导出val的数据类型:

  A B C哪个正确?

 

      ar是数组 p是指针 p应该是容器    br是引用10个元素数组,每个元素是整型,br是ar的别名 可以担当容器

 

 ar代表整个数组

 ar代表首元素的地址 int*

 B√

 

 下面是指针部分内容

 

 s+1  加4个字节   p+1加16个字节   p与*p数值上

 

 p代表指向数组的地址 *p代表指向数组首元素的地址,在数值上相同 意义不同 p+1加16个

 如何通过p指针对ar2[2]赋值为100::

 

 

 打印x,打印的值是什么:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值