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

C++ 遍历map的3中方法

方法1

#include <iostream>
#include <string>
#include <map>
using namespace std;int main() {map<string, string> nameList = {{"张三丰", "武当山"},{"张无忌", "光明顶"},{"张二蛋", "峨眉山"},};// 方法一for (map<string, string>::iterator i = nameList.begin();i!=nameList.end();i++){cout<<"姓名="<< i->first<<"所在地="<<i->second<<endl;}return 0;
}

方法2

#include <iostream>
#include <string>
#include <map>
using namespace std;int main() {map<string, string> nameList = {{"张三丰", "武当山"},{"张无忌", "光明顶"},{"张二蛋", "峨眉山"},};// 方法二for (auto i = nameList.begin();i!=nameList.end();i++){cout<<"姓名="<< i->first<<"所在地="<<i->second<<endl;}return 0;
}

方法3

#include <iostream>
#include <string>
#include <map>
using namespace std;int main() {map<string, string> nameList = {{"张三丰", "武当山"},{"张无忌", "光明顶"},{"张二蛋", "峨眉山"},};// 方法三,c++11 引入for (auto i : nameList) {cout<<"姓名="<< i.first<<"所在地="<<i.second<<endl; }return 0;
}

 最后说下-> 和.

方法3中此时的i不在是迭代器,它的类型是pair<const string,string> ,要访问的是其成员,所以使用 i.first 和 i.second,方法1和方法2 迭代器 i 表示的是容器中元素的位置,但它本身并非实际的对象,而是类似于一个指针,所以使用i->first 和 i->second,
总结:

-> 用于通过指针间接访问类或结构体实例的成员
. 用于直接访问类或结构体实例的成员

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

相关文章:

  • redis 主从模式,sentinel 模式配置
  • 小型医院医疗设备管理系统|基于springboot小型医院医疗设备管理系统设计与实现(源码+数据库+文档)
  • CSS学习(三)
  • CentOS7安装InfluxDB2简易教程
  • 数据库:信息存储与管理的关键
  • 极智芯 | 解读NVIDIA RTX5090 又是一波被禁售的节奏
  • rtt的io设备框架面向对象学习-硬件rtc设备
  • 产品经理学习-产品运营《流程管理》
  • 压缩感知——革新数据采集的科学魔法
  • 华为配置直连三层组网直接转发示例
  • MCAL知识点(二十八):TC275如何通过EB-Tresos配置实现硬件触发ADC同步采样(电机控制器三相电流同步采样)
  • proteus8.15图文安装教程
  • ACP科普:敏捷开发之kanban
  • 代理模式(Proxy模式)
  • Android使用shape定义带渐变色的背景
  • 轻松搞定Makefile
  • 【C++之类和对象篇002】
  • k8s学习(RKE+k8s+rancher2.x)成长系列之简配版环境搭建(三)
  • 基于SSM的疫情期间学生信息管理平台的设计与实现(有报告)。Javaee项目。ssm项目。
  • LeetCode_20_简单_有效的括号
  • gRPC 备查
  • MySQL 基础知识(十)之 MySQL 架构
  • [晓理紫]每日论文分享(有中文摘要,源码或项目地址)--大模型、扩散模型
  • Delphi v11 安卓权限申请
  • 频谱仿真平台HTZ Communications为私有5G建设铺平道路
  • 【高效开发工具系列】PyCharm使用
  • 进程终止与进程等待
  • MySQL 基础知识(六)之数据查询(二)
  • 蓝桥杯嵌入式STM32G431RBT6知识点(主观题部分)
  • ELAdmin 部署