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

【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.lryc.cn/news/547641.html

相关文章:

  • 达梦数据库备份
  • Linux系统基于ARM平台的LVGL移植
  • C++ 二叉搜索树代码
  • DeepSeek+知识库+鸿蒙,助力鸿蒙高效开发
  • 蓝桥杯牛客1-10重点(自用)
  • Kafka - 高吞吐量的七项核心设计解析
  • Towards Precise and Explainable Hardware Trojan Localization at LUT Level
  • Python实现鼠标点击获取窗口进程信息
  • Mac安装jdk教程
  • 【HeadFirst系列之HeadFirst设计模式】第14天之与设计模式相处:真实世界中的设计模式
  • JDBC 完全指南:掌握 Java 数据库交互的核心技术
  • Vue父子组件传递笔记
  • 文件上传漏洞与phpcms漏洞安全分析
  • 【deepseek】辅助思考生物学问题:ICImapping构建遗传图谱gap较大
  • linux磁盘非lvm分区
  • Windows下sql server2012安装流程
  • css之英文换行样式
  • 绝美焦糖暖色调复古风景画面Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 文件解析:doc、docx、pdf
  • 计算机网络基础:VLAN(虚拟局域网)
  • C++学习笔记(十一)——循环结构
  • 【C++】二叉树相关算法题
  • 物联网IoT系列之MQTT协议基础知识
  • 【大学生体质】智能 AI 旅游推荐平台(Vue+SpringBoot3)-完整部署教程
  • 【Node.js入门笔记1---初始Node.js)】
  • 自学Java-JavaSE基础加强(多线程)
  • 数字后端培训实战项目六大典型后端实现案例
  • 安卓免费多功能工具:一站式解决 PDF 阅读、编辑、转换等需求
  • diffuser库使用本地模型生成图像
  • 递归—基础算法