当前位置: 首页 > article >正文

【C++】5.4.3 范围for语句

范围for语句基本形式:

for(声明变量:序列容器)
{
    循环执行语句;
}

其中,“序列容器”是指花括号括起来的初始值列表、数组、vector或者string等类型的对象,主要特点是拥有能返回迭代器的 begin()end() 成员;

“声明变量”是一个类似声明的语句(变量类型 + 变量名),不过该变量类型有一个要求:序列中的每个元素都能转换成该类型。一般使用 auto 类型说明符来自动选择合适的类型。另外,如果要对序列中的元素执行写操作,这个变量需要声明成引用类型,如果只需要读的时候,可以声明成const & 。

一般使用如下,比如将其中元素翻倍:

vector<int> vctIntNum = {1,2,3,4,5};
for(auto &w : vctIntNum)
{
    w *= 2;
}

范围for语句的定义来源于传统for语句:

for(auto beg = v.begin(),end = v.end(); beg != end; ++beg)
{
    变量声明类型 r = *beg;
    循环操作;
}

因为范围for语句在最开始的初始化语句中,记录了该序列的end(),因此如果一旦在该序列添加或者删除元素,end函数的值就可能变得无效了。因此,使用迭代器或者范围for语句进行循环结构的编写时,尽量避免添加或者删除其中的元素。


http://www.kler.cn/a/573988.html

相关文章:

  • maven高级-02.继承与聚合-继承关系实现
  • 算阶,jdk和idea的安装
  • 程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<12>
  • Python中的常用库
  • Java中的集合
  • 国产ARM主机安装Ansible
  • vue3的npm配置修改源
  • DeepSeek携手防爆对讲机,大胆探索石化行业智能化升级
  • c#实现Modbus TCP/IP与RS 485数据交换的实例
  • 深入理解设计模式中的单例模式(Singleton Pattern)
  • 人工智能之数学基础:伴随矩阵
  • redis菜鸟教程
  • 【Linux篇】版本控制器-Git
  • nvidia驱动升级-ubuntu 1804
  • blender 渲染obj
  • 开发社交陪玩app小程序
  • 前端流式输出深度解析:技术原理、实战应用与性能优化
  • 计算光学成像与光学计算概论
  • GCC RISCV 后端 -- cc1 入口
  • 【五.LangChain技术与应用】【30.LangChain Agent小案例2:复杂场景下的代理设计】