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

Qt5下遍历QList的方法

lines定义如下 QMap<QString,Line> lines;
Line的定义如下

class Line{protected:QString name;QColor color;QList<int> total_stations; // all statuibQList<QString> start_stas,end_stas; //start end stationQList<QList<QString>>sta_list; //
public:Line(){};friend class SubwaySystem;friend class MainWindow;friend class SubwayControlWindow;
};
void SubwaySystem::statisticEdges(){/*在C++中,list是一个双向链表容器,它提供了许多用于访问和操作链表元素的方法。其中,at()函数用于访问链表中指定位置的元素。*/for(auto &line:this->lines.values())for(auto &sta_list:line.sta_list){int len= sta_list.size();for(int i=0;i<len;i++){if(i>0) this->stations[sta_list.at(i)].addEdge(this->stations[sta_list.at(i-1)],line.name);if(i<len-1) this->stations[sta_list.at(i)].addEdge(this->stations[sta_list.at(i+1)],line.name);}}}

但是 我们看到我们调用了保护成员sta_list
但其实lines也是保护成员 隶属于 SyswaySystem 类
for循环这个遍历函数也属于SyswaySystem类
但是为什么能够调用Line的保护成员呢

我们可以看到在public中
我们使用了friend class SyswaySystem 声明了友元类
这样 我们就可以访问Line的保护成员了

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

相关文章:

  • Leetcode 剑指 Offer II 043. 完全二叉树插入器
  • 链路追踪Skywalking应用实战
  • 提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除
  • Arm 架构 Ubuntu 使用 Docker 安装 Gitlab 并使用
  • 百度地图3D棱柱鼠标事件
  • PHP调用java class 类实现文件签名
  • 信号和槽机制
  • 计算机视觉领域经典模型汇总(2023.09.08
  • 华为云云耀云服务器L实例评测|在 Centos Docker 中使用Nginx部署Vue项目
  • 高频知识汇总 |【计算机网络】面试题汇总(万字长文通俗易懂)
  • 6.Flask-APScheduler定时任务框架
  • 电脑入门:路由器访问控制列表基础知识
  • 目标检测笔记(十四): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
  • windows系统edge浏览器退出账户后还能免密登录的解决方式
  • 在Spring Boot项目中使用JPA
  • 探讨Socks5代理IP在跨境电商与网络游戏中的网络安全应用
  • T检验的前提条件|独立性|方差齐性|随机抽样
  • 【GO语言基础】变量常量
  • C++QT day3
  • AI时代的较量,MixTrust能否略胜一筹?
  • Ubuntu22.04 安装 MongoDB 7.0
  • 【日志技术——Logback日志框架】
  • mysql存储过程和函数
  • 【HDFS】Hadoop-RPC:客户端侧通过Client.Connection#sendRpcRequest方法发送RPC序列化数据
  • Java基于 SpringBoot 的车辆充电桩系统
  • excel表导出
  • YOLOv8 快速入门
  • HJ48 从单向链表中删除指定值的节点
  • Java缓存理解
  • MHA高可用及故障切换