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

范围 for 循环

  在C++中,范围for循环(也称为基于范围的for循环)是一种简洁的方法来遍历容器(如数组、向量、列表等)中的元素。它自动处理迭代器,使得代码更加易读和简洁。范围for循环的基本语法如下:

for (declaration : collection) {statement
}

这里,declaration是一个在每次迭代中用于访问容器元素的变量,collection是你要遍历的容器。statement是每次迭代时要执行的语句。

示例1:遍历数组

#include <iostream>
int main() {int arr[] = {1, 2, 3, 4, 5};for (int &x : arr) {  // 使用引用可以修改数组元素x *= 2;  // 将每个元素乘以2}for (int x : arr) {  // 再次遍历以查看结果std::cout << x << " ";}std::cout << std::endl;return 0;
}

示例2:遍历向量(vector)

#include <iostream>
#include <vector>
int main() {std::vector<int> vec = {10, 20, 30, 40, 50};for (int x : vec) {std::cout << x << " ";}std::cout << std::endl;return 0;
}

示例3:遍历字符串(string)

#include <iostream>
#include <string>
int main() {std::string str = "Hello";for (char c : str) {std::cout << c << " ";}std::cout << std::endl;return 0;
}

注意事项:
(1)修改元素:如果你需要在循环中修改容器中的元素,你应该使用引用(例如 int &x 或 char &c)。如果不使用引用,你将无法修改原始容器中的元素。
(2)范围for循环的限制:范围for循环只能用于容器,而不能直接用于原始数组以外的其他类型,例如原生指针数组或自定义容器(除非它们支持迭代器)。对于原生指针数组,可以使用基于范围的for循环与标准库中的begin()和end()函数配合使用,例如:for (auto &x : std::vector<int*>(arr, arr + N))。
(3)性能考虑:虽然范围for循环使得代码更易读,但在性能敏感的场景下,可能需要手动使用迭代器来优化性能。例如,在某些情况下,手动控制迭代器的生命周期可能会带来性能上的优势。然而,对于大多数日常编程任务,范围for循环的性能开销是可以接受的。
通过使用范围for循环,你可以以非常直观和简洁的方式处理容器中的元素,使得代码更加清晰和易于维护。
学习参考:
1、范围 for 循环 (C++11 引入)
2、范围 for 循环(Range-based for loop)
3、C++ 范围 for 循环详解

http://www.wxhsa.cn/company.asp?id=2569

相关文章:

  • Java开发者无需Python!JBoltAI让AI应用开发像搭积木一样简单
  • JBoltAI:解锁企业AI应用开发新范式,驱动数智化升级核心引擎
  • kmp
  • 黑窗
  • 深入解析:机器学习算法之Boosting
  • GW1NSR-4C硬核MCU的硬件SPI问题
  • NKOJ全TJ计划——NP11793
  • Python天猫订单数据与日化商品销售数据RFM模型应用可视化分析
  • JBoltAI重塑智能检索:问题重写与混合检索如何破解企业RAG应用瓶颈
  • Springcloud Alibaba从入门到入土(一)
  • JBoltAI函数调用技术:自然语言即可查询数据库,重构企业数据交互方式
  • JBoltAI文档提取技术:企业智能升级的数据解锁之道
  • 题解:CF645B Mischievous Mess Makers
  • 题解:CF1076C Meme Problem
  • 视频讲解|Python用ResNet残差神经网络在大脑出血CT图像描数据预测应用
  • 题解:CF1188A1 Add on a Tree
  • CSP-S 9.9
  • 250913 课堂笔记
  • NKOJ全TJ计划——NP11792
  • 求加小红书
  • Ubuntu 修改 Git 的编辑器为 Vim
  • 完整教程:Photo Lab PRO 图片编辑器 功能解锁版
  • 编辑功能查询问题解决
  • Ubuntu 18.04 虚拟机 VScode无法正常输入中文解决办法
  • manacher算法
  • [能源化工] 面向锂电池RUL预测的开源项目全景速览
  • 源码app陪玩,React技巧之发出http请求 - 云豹科技
  • qoj1847 Elephants
  • p4085
  • Excel甘特图 - 教程