C++ 范围for循环

这篇具有很好参考价值的文章主要介绍了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 循环的一股格式:

C++ 范围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;

}

 C++ 范围for循环

 

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++ 范围for循环

 

 C++ 范围for循环

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

 C++ 范围for循环

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

C++ 范围for循环

 C++ 范围for循环

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

C++ 范围for循环

  A B C哪个正确?

 C++ 范围for循环

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

 C++ 范围for循环

 ar代表整个数组

C++ 范围for循环

 ar代表首元素的地址 int*

C++ 范围for循环

 B√

C++ 范围for循环

 C++ 范围for循环

 下面是指针部分内容

 C++ 范围for循环

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

 C++ 范围for循环

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

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

C++ 范围for循环

 C++ 范围for循环

 C++ 范围for循环

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

C++ 范围for循环C++ 范围for循环 

 C++ 范围for循环文章来源地址https://www.toymoban.com/news/detail-470317.html

到了这里,关于C++ 范围for循环的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++中使用嵌套循环遍历多维数组

    一维数组:数组元素可以看做是一行数据。 二维数组:更像是一个表格,既有行数据又有列数据。 C++没有提供二维数组类型,但用户可以创建每个元素本身都是数组的数组。例如,假设要存储 5 个城市在 4 年间的最高气温,可以这样声明数组: 该声明意味着 maxtemps 是一个包

    2024年02月07日
    浏览(31)
  • 【C++初阶】引用&内联函数&auto关键字&范围for循环&nullptr

    ========================================================================= 个人主页还有更多系列专栏: 小白不是程序媛 我的小仓库: Gitee C++系列专栏: C++头疼记 ========================================================================= 目录 前言 引用 概念 引用的特点 常引用  引用的使用场景 做参数  做返

    2024年02月08日
    浏览(36)
  • 开启C++之旅(下):引用、内联函数及现代特性(auto和范围for循环)

    上次介绍了:开启C++之旅(上):探索命名空间与函数特性(缺省参数和函数重载) 今天就接着进行c++入门的知识讲解 引用 不是新定义一个变量,而是给已存在 变量取了一个别名 ,编译器不会为引用变量开辟内存空间,它和它引用的变量 共用 同一块内存空间。通过引用,

    2024年01月17日
    浏览(38)
  • 【c++入门】引用详解 | auto的类型推导 | 范围for循环 | nullptr空指针

    🎥 屿小夏 : 个人主页 🔥个人专栏 : C++入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 上篇文章中,对函数重载和内联函数的作用和特性使用,进行了精细的详解。 引用和指针混不清?引用的抽丝剥茧!还有不用写类型可以自动推导的?for遍历竟然还有我们没见过的面

    2024年02月06日
    浏览(130)
  • 【C++】内联函数、auto关键字、基于范围的for循环、指针空值nullptr

    👀樊梓慕: 个人主页  🎥 个人专栏: 《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》 🌝 每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.内联函数 1.1概念 1.2特性 2.auto 2.1类型别名思考 2.2auto简介 2.3auto的使用细则 2.4auto不能使

    2024年02月07日
    浏览(33)
  • 【与C++的邂逅之旅】--- 内联函数 && auto关键字 && 基于范围的for循环 && nullptr

    关注小庄 顿顿解馋૮(˶ᵔ ᵕ ᵔ˶)ა 博主专栏: 💡 与C++的邂逅之旅 💡 数据结构之旅 上篇我们了解了函数重载和引用,我们继续学习有关C++的一些小语法— 内联函数,auto,基于范围的for循环以及 nullptr,请放心食用 ~ 这个函数不陌生吧,我们在实现排序算法时经常

    2024年04月09日
    浏览(53)
  • 【C++初阶】C++基础(下)——引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr

      目录 1. 引用 1.1 引用概念 1.2 引用特性 1.3 常引用 1.4 使用场景 1.5 传值、传引用效率比较 1.6 引用和指针的区别 2. 内联函数 2.1 概念 2.2 特性 3.auto(C++11) 3.1 类型别名思考 3.2 auto简介 3.3 auto的使用细则 3.4 auto不能推导的场景 4. 基于范围的for循环(C++11) 4.1 

    2024年02月15日
    浏览(61)
  • 【C++】语法小课堂 --- auto关键字 & typeid查看实际类型 & 范围for循环 & 空指针nullptr

    🚩 在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它,大家可思考下为什么? C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器, auto定义的

    2024年02月13日
    浏览(35)
  • 【C++】:函数重载,引用,内联函数,auto关键字,基于范围的for循环,nullptr关键字

    在C语言中,同名函数是不能出现在同一作用域的,但是在C++中却可以,但是要满足函数重载的规则。 那什么是函数重载呢?它的规则是什么呢? 函数重载 :是函数的一种特殊情况,C++允许在 同一作用域 中声明几个功能类似的 同名函数 ,这些同名函数的 形参列表(参数个数

    2024年04月26日
    浏览(40)
  • 【C++】: auto关键字(C++11)+基于范围的for循环(C++11)+指针空值nullptr(C++11)

    随着程序越来越复杂,程序中用到的类型也越来越复杂,经常体现在: 类型难于拼写 含义不明确导致容易出错 std::mapstd::string, std::string::iterator 是一个类型,但是该类型太长了,特别容 易写错。聪明的同学可能已经想到:可以通过typedef给类型取别名,比如: 使用typedef给类

    2024年02月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包