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

【二维vector遍历】 auto表示vector<int>

🧩 1️⃣ auto 是什么?

在 C++ 中,auto类型自动推导 关键字。

意思是:

编译器会根据 = 右边或循环表达式自动推断出变量的实际类型。


✅ 在这段里:

for (auto& e : edges)
  • edgesvector<vector<int>>(一个二维数组/列表)。

  • 所以,edges 的元素 evector<int>

  • auto 就自动推断出来:

    auto => vector<int>
    

加上 & 就是:

auto& e => vector<int>&

也就是:

e 是对 edges 里某个 vector<int> 的引用。


🧩 2️⃣ 那为什么能写 e[0]e[1]

因为:

  • evector<int>

  • vector<int> 就是一个整数数组(动态数组)。

  • 所以 e[0] 就是这个 vector 里的第一个元素,e[1] 就是第二个。


🔑 结合上下文

edges 本身是形如:

edges = [[0, 1],[1, 2],[2, 3]
];

这是输入里的边列表,edges 的每个元素都是一个长度为 2 的 vector<int>,表示一条边。

所以:

for (auto& e : edges) {int x = e[0], y = e[1];...
}

就相当于:

for (vector<int>& e : edges) {int x = e[0]; // 边的起点int y = e[1]; // 边的终点
}

🧩 3️⃣ 所以 auto 在这里就是为了省事

如果手写完整类型,要写:

for (vector<int>& e : edges)

auto

for (auto& e : edges)

完全等价,编译器会推导出来。


✅ 总结一句话

  • auto 就是让编译器帮你自动写类型,尤其是复杂容器(vector<vector<int>>)时非常省心。

  • e 的实际类型是 vector<int>,所以能像数组一样 e[0]e[1]

  • 这段写法就是在遍历边列表,把每条边拆成起点 x 和终点 y

http://www.dtcms.com/a/295631.html

相关文章:

  • 【大模型论文阅读】2503.01821_On the Power of Context-Enhanced Learning in LLMs
  • 【论文阅读+复现】LayoutDM: Transformer-based Diffusion Model for Layout Generation
  • 使用 Python 将 CSV 文件转换为带格式的 Excel 文件
  • 51c视觉~3D~合集4
  • Flutter 主流 UI 框架总结归纳
  • 光通信从入门到精通:PDH→DWDM→OTN 的超详细演进笔记
  • 《Flutter篇第一章》基于GetX 和 Binding、Dio 实现的 Flutter UI 架构
  • 弧焊机器人减少气体消耗攻略
  • 图论:搜索问题
  • C++图论全面解析:从基础概念到算法实践
  • 数据挖掘顶刊TKDE论文分享│ST-LLM+:面向交通预测的图增强时空大语言模型
  • Flutter开发环境搭建与工具链
  • kettle插件-kettle数据挖掘ARFF插件
  • 从手动操作到自动化:火语言 RPA 在多系统协作中的实践
  • GoLand 项目从 0 到 1:第二天 —— 数据库自动化
  • postgresql执行创建和删除时遇到的问题
  • JVM 核心内容
  • k8s之Ingress服务接入控制器
  • 函数耗时情况检测方案
  • LeetCodeOJ题:回文链表
  • HTTP/1.0、HTTP/1.1 和 HTTP/2.0 主要区别
  • Java设计模式之行为型模式(中介者模式)介绍与说明
  • 常用设计模式系列(十一)—外观模式
  • VUE2 学习笔记5 动态绑定class、条件渲染、列表过滤与排序
  • 微服务-springcloud-springboot-Skywalking详解(下载安装)
  • C++中std::list的使用详解和综合实战代码示例
  • Linux进程间通信:管道机制全方位解读
  • uniapp转微信程序点击事件报错Error: Component “xx“ does not have a method “xx“解决方案
  • Linux724 逻辑卷挂载;挂载点扩容;逻辑卷开机自启
  • 【PZ-ZU7EV-KFB】——ZYNQ UltraScale + ZU7EV开发板ARM/FPGA异构计算开发平台,赋能多域智能硬件创新