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

C++20中的基于范围的for循环(range-based for loop)

      C++11中引入了对基于范围的for循环(range-based for loop)的支持:该循环对一系列值(例如容器中的所有元素)进行操作。代码段如下:

const std::vector<int> vec{ 1,2,3,4,5 };
for (const auto& i : vec)std::cout << i << ", ";
std::cout << std::endl;

      C++17中增加对结构化绑定(structured bingding)声明的支持。代码段如下:

std::map<int, int> m{ {1,-1}, {2,-2}, {3,-3} };
for (const auto& [key, value] : m)std::cout << key << "," << value << "; ";
std::cout << std::endl;

      C++20中增加支持声明任意多个变量,必须以分号结尾。代码段如下:

const std::vector<int> vec{ 1,2,3,4,5 };
for (auto n = vec.size(), m = static_cast<size_t>(0); const auto & i : vec)std::cout << --n + i << "," << ++m << "; ";
std::cout << std::endl;for (const auto vec = std::vector{ -1,-2,-3,-4,-5 }; const auto& i : vec)std::cout << i << ", ";
std::cout << std::endl;

      以下为完整测试代码:

int test_for_20()
{const std::vector<int> vec{ 1,2,3,4,5 };// C++11for (const auto& i : vec)std::cout << i << ", ";std::cout << std::endl;// C++17std::map<int, int> m{ {1,-1}, {2,-2}, {3,-3} };for (const auto& [key, value] : m)std::cout << key << "," << value << "; ";std::cout << std::endl;// C++20for (auto n = vec.size(), m = static_cast<size_t>(0); const auto & i : vec)std::cout << --n + i << "," << ++m << "; ";std::cout << std::endl;for (const auto vec = std::vector{ -1,-2,-3,-4,-5 }; const auto& i : vec)std::cout << i << ", ";std::cout << std::endl;return 0;
}

      执行结果如下图所示:

      GitHub:https://github.com/fengbingchun/Messy_Test

http://www.lryc.cn/news/394347.html

相关文章:

  • PCIe驱动开发(2)— 第一个简单驱动编写和测试
  • k8s-第七节-ConfigMap Secret
  • MySQL架构和工作流程
  • java项目总结8
  • 【Nvidia+AI相机】涂布视觉检测方案专注提高锂电池质量把控标准
  • Spring Cloud Alibaba - Sentinel 分布式系统流量哨兵
  • 文件存储的方法一
  • 数据结构/作业/2024/7/7
  • 隔离级别-隔离级别中的锁协议、隔离级别类型、隔离级别的设置、隔离级别应用
  • 【数据结构与算法】希尔排序
  • 【机器学习】(基础篇一) —— 什么是机器学习
  • VitePress安装部署
  • Spring的事务传播机制和隔离级别
  • 华为路由器静态路由配置(eNSP模拟实验)
  • antd实现简易相册,zdppy+vue3+antd实现前后端分离相册
  • PIP换源的全面指南
  • 陶建辉当选 GDOS 全球数据库及开源峰会荣誉顾问
  • Drools开源业务规则引擎(二)- Drools规则语言(DRL)
  • PTA甲级1005:Spell It Right
  • Vue笔记11-Composition API的优势
  • rancher管理多个集群
  • 某大会的影响力正在扩大,吞噬了整个数据库世界!
  • PostgreSQL主从复制:打造高可用数据库架构的秘籍
  • Fast R-CNN(论文阅读)
  • 视觉语言模型:融合视觉与语言的未来
  • 【CSAPP】-linklab实验
  • UE C++ 多镜头设置缩放 平移
  • 代码随想录Day69(图论Part05)
  • 53-1 内网代理3 - Netsh端口转发(推荐)
  • 慧哥充电桩开源平台小程序、PC后、手机商户端历经2年的无数次迭代。