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

19.8、C++11新特性有哪些⑧【基于范围的for循环】

当我们需要完整地遍历一个有范围的集合或数组时,就可以使用基于范围的for循环。

  • 它的好处是 不用程序员去写明这个集合或数组的范围,省时省力;而且形式比较简单:
for(迭代的变量:数组)
{}
  • 现在我们使用范围遍历对数组进行遍历。
for(int& e: arr)//使用引用(&)的好处:1.可以避免拷贝 2.可以修改数组中每一项的值
{
	std::cout << e << " ";
}
std::cout << std::endl;
  • 然后我们可以在这里加入auto自动类型(C++11),遍历将会更加简单。
for (const auto& elem : arr)//如果不去修改数组中的值,建议使用const&,可以避免拷贝
{
	std::cout << elem << " ";
}
std::cout << std::endl;

(使用auto修饰指针变量,那么推导出来的类型是指针解引用后的类型)

  • 注意:

    范围遍历不能适用于所有情况,范围遍历的条件就是循环迭代的范围必须是可确定的

    • 例如string、array、vector、list、map等都是可以正常使用的(内置类型都可以)
    • 而 对于用户自定义类型,则需要提供 自增运算符重载 和 赋值运算符重载

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

相关文章:

  • 深入探索像ChatGPT这样的大语言模型-03-POST-Training:Reinforcement Learning
  • Lua脚本使用教学指南:与Spring Boot项目集成示例
  • ClickHouse深度解析:OLAP领域的性能怪兽
  • 【星云 Orbit • STM32F4】10. 在串口接收中断里即时解析数据头的程序框架
  • 测试是如何跟进和管理 bug
  • Prompt Engineering for Large Language Models
  • 【C++学习篇】智能指针
  • 【C#】Clipboard中SetImage(BitmapSource image)的用法
  • Elasticsearch 限制索引大小与索引模板匹配冲突解决方案
  • 安装gcc8编译工具和centos7中的yum冲突,恢复原本yum
  • 集合遍历的多种方式
  • vulnhub靶场之【digitalworld.local系列】的JOY靶机
  • LeetCode hot 100 每日一题(3)--128. 最长连续序列
  • 鸿蒙中打开相机相册
  • Electron、Tauri及其它跨平台方案终极对比
  • 腾讯云 | 微搭低代码快速开发数据表单应用
  • C#里定义对象序列化保存的例子
  • 证明:曲线的可导点不能同时为极值点和拐点
  • Nest系列:从环境变量到工程化实践-2
  • 你了解 Java 线程池的原理吗?