C++系列-STL容器中的for循环遍历方式

STL容器中的for循环遍历方式

  • 普通的for循环
  • 利用迭代器for循环
  • for循环新用法 for (auto i_st : st)
  • for_each循环


淮上喜会梁川故友 韦应物
江汉曾为客,相逢每醉还。
浮云一别后,流水十年间。
欢笑情如旧,萧疏鬓已斑。
何因不归去,淮上有秋山。


在遍历容器中的元素时,一般我们会使用如下的几种遍历方式。

普通的for循环

  • for (int i_loop = 0; i_loop < st.size(); i_loop++)
  • 利用set的size作为循环条件。
code:
#include <iostream>
#include <set>
using namespace std;template<typename T>
void print_set_normal(const set<T>& st)
{set<int>::iterator it = st.begin();for (int i_loop = 0; i_loop < st.size(); i_loop++){cout << *it << " ";it++;}cout << endl;
}void test01()
{set<int> st1{23, 1, 56, 78, 44, 35, 99, 76};	// 初始化列表构造函数cout << "---------- st1, st1.size() ---------- " << st1.size() << endl;print_set_normal(st1);cout << endl;
}
int main()
{test01();system("pause");return 0;
}result:
---------- st1, st1.size() ---------- 8
1 23 35 44 56 76 78 99

利用迭代器for循环

  • for (set::iterator it = st.begin(); it != st.end(); it++)
  • 利用迭代器begin(), end()作为循环条件,有的容器不支持<,可以用!=。
code:
#include <iostream>
#include <set>
using namespace std;template<typename T>
void print_set_iterator(const set<T>& st)
{for (set<int>::const_iterator it = st.begin(); it != st.end(); it++){cout << *it << " ";}cout << endl;
}void test01()
{set<int> st1{23, 1, 56, 78, 44, 35, 99, 76};	// 初始化列表构造函数cout << "---------- st1, st1.size() ---------- " << st1.size() << endl;print_set_iterator(st1);cout << endl;
}
int main()
{test01();system("pause");return 0;
}result:
---------- st1, st1.size() ---------- 8
1 23 35 44 56 76 78 99

for循环新用法 for (auto i_st : st)

  • for (auto i_st : st)
code:
#include <iostream>
#include <set>
using namespace std;template<typename T>
void print_set_for_auto(const set<T>& st)
{for (auto i_st : st)		// auto在这里表示自动类型推导,在这里也可以for (int i_st1: st1){cout << i_st << " ";}cout << endl;
}void test01()
{set<int> st1{23, 1, 56, 78, 44, 35, 99, 76};	// 初始化列表构造函数cout << "---------- st1, st1.size() ---------- " << st1.size() << endl;print_set_for_auto(st1);cout << endl;
}
int main()
{test01();system("pause");return 0;
}result:
---------- st1, st1.size() ---------- 8
1 23 35 44 56 76 78 99

for_each循环

  • for_each(st.begin(), st.end(), func)
  • 要使用for_each,先要导入头文件,#include <algorithm>
code:
#include <iostream>
#include <set>
using namespace std;template<typename T>
void print_set_for_auto(const set<T>& st)
{for (auto i_st : st)		// auto在这里表示自动类型推导,在这里也可以for (int i_st1: st1){cout << i_st << " ";}cout << endl;
}void test01()
{set<int> st1{23, 1, 56, 78, 44, 35, 99, 76};	// 初始化列表构造函数cout << "---------- st1, st1.size() ---------- " << st1.size() << endl;print_set_for_auto(st1);cout << endl;
}
int main()
{test01();system("pause");return 0;
}result:
---------- st1, st1.size() ---------- 8
1 23 35 44 56 76 78 99

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/878537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录Day 32|leetcode题目:501.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划理论基础一、理论基础1.1 什么是动态规划1.2 动态规划的解题步骤1.3 动态规划应该如何debug 二、题目题目一&#xff1a; 509. 斐波那契数解题思路&#xff1a;动态规划递归解法 题目二&a…

【golang-入门】环境配置、VSCode开发环境配置

golang介绍基础信息 windows环境配置安装包下载安装环境变量设置检查 VSCode开发配置插件配置在 Visual Studio Code 中安装通义灵码go hello word 参考资料 golang介绍 基础信息 golang官网&#xff1a;https://go.dev/golang学习网&#xff1a;https://studygolang.com/使用…

ARM基础知识---CPU---处理器

目录 一、ARM架构 1.1.RAM---随机存储器 1.2.ROM---只读存储器 1.3.flash---闪存存储器 1.4.时钟&#xff08;振晶&#xff09; 1.5.复位 二、CPU---ARM920T 2.1.R0~R12---通用寄存器 2.2.PC程序计数器 2.3.LR连接寄存器 2.4.SP栈指针寄存器 2.5.CPSR当前程序状态寄存…

测试:TestGRPCDiscovery

目录 测试:TestGRPCDiscovery 类定义 方法 async def asyncSetUp(self): async def asyncTearDown(self): async def test_discovery(self): 总结 这是一个关于算力共享中环形结构通讯机制的项目图的功能模型解释。以下是根据所给信息对项目功能的概述: 项目结构: 项…

Windows 下载安装RabbitMQ

环境描述 windows10 Erlang 26.2.x 版本 RabbitMQ 3.13.7 因为RabbitMQ是Erlang语言开发的&#xff0c;所以必须安装 Erlang RabbitMQ官网链接: https://www.rabbitmq.com/docs/which-erlang 1.下载并安装Erlang 26.2.5 1.1下载Erlang 26.2.5 https://erlang.org/dow…

深度强化学习算法(四)(附带MATLAB程序)

深度强化学习&#xff08;Deep Reinforcement Learning, DRL&#xff09;结合了深度学习和强化学习的优点&#xff0c;能够处理具有高维状态和动作空间的复杂任务。它的核心思想是利用深度神经网络来逼近强化学习中的策略函数和价值函数&#xff0c;从而提高学习能力和决策效率…

鸿誉移民:定制化移民服务,吹响全球高效率移民的嘹亮号角!

鸿誉移民&#xff1a;定制化移民服务&#xff0c;吹响全球高效率移民的嘹亮号角&#xff01; 作为国内知名海外移民服务机构&#xff0c;鸿誉移民历经多年行业沉淀&#xff0c;拥有着极其丰富的移民咨询以及移民办理经验&#xff0c;并以咨询及时精准&#xff0c;签证快捷、通…

【数据结构】Map的使用与注意事项

文章目录 概念模型Map 的使用put() 和 get()getOrDefault()remove()keySet()entrySet() 注意事项 概念 Map 和 set 是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。 以前常见的搜索方式有&#xff1a; 直接遍历&#xff0c;时间…

URP简洁的instance的写法

材质还是要开启enable instance&#xff0c;这是上一次的写法 https://dbbh666.blog.csdn.net/article/details/136644181 最近发现更适合我个人的习惯的写法 就是代码控制这个整个过程 C#代码是这样的&#xff0c;获取一个mesh&#xff0c;获取每个mesh的transform&#xff0c…

常见的性能测试方法!

前言 性能测试划分有很多种&#xff0c;测试方法也有很多种&#xff0c;更确切的说是由于测试方法的不同决定了测试划分的情况&#xff0c;但在测试过程中性能测试的划分没有绝对的界限&#xff0c;常用的有压力测试、负载测试和并发用户测试等。 性能测试的方法主要包括以下…

stm32之硬件I2C读写MPU6050陀螺仪、加速度传感器应用案例

系列文章目录 1. stm32之I2C通信协议 2. stm32之软件I2C读写MPU6050陀螺仪、加速度传感器应用案例 3. stm32之I2C通信外设 文章目录 系列文章目录前言一、电路接线图二、应用案例代码三、应用案例分析3.1 基本思路3.2 相关库函数介绍3.3 MPU6050模块3.1.1 模块初始化3.1.2 指定…

52 mysql 启动过程中常见的相关报错信息

前言 我们这里主要是看一下 service mysql start, service mysql stop 的过程中的一些常见的错误问题 这些 也是之前经常碰到, 但是 每次都是 去搜索, 尝试 1, 2, 3, 4 去解决问题 但是 从来未曾思考过 这个问题到底是 怎么造成的 The server quit without updating PID fil…

vrrp协议,主备路由器的选举

当VRRP备份组中的所有备份路由器&#xff08;BACKUP&#xff09;具有相同的优先级时&#xff0c;选举新的主路由器&#xff08;MASTER&#xff09;的过程将基于以下规则&#xff1a; IP地址优先&#xff1a;如果备份路由器的优先级相同&#xff0c;那么具有最高IP地址的路由器…

我的sql我做主!Mysql 的集群架构详解之组从复制、半同步模式、MGR、Mysql路由和MHA管理集群组

目录 Mysql 集群技术一、Mysql 在服务器中的部署方法1.1 在Linux下部署mysql1.1.1 安装依赖性&#xff1a;1.1.2 下载并解压源码包1.1.3 源码编译安装mysql1.1.4 部署mysql 二、Mysql的组从复制2.1 配置mastesr2.2 配置salve2.3 当有数据时添加slave22.4 延迟复制2.5 慢查询日志…

Python爬虫02

xml 和html 区别 jsonpath模块 场景 多层嵌套的复杂字典直接提取数据 安装 pip install jsonpath使用 from jsonpath import jsonpathret jsonpath(dict, jaonpath语法规则字符串)语法规则 eg: lxml模块&xpath语法 谷歌浏览器 xpath helper 插件 作用对当前页面…

HIS系统|HIS系统开发源码

在数字医疗时代&#xff0c;医院信息系统&#xff08;HIS&#xff09;的开发至关重要。本文将深入探讨在开发HIS系统时需要关注的主要事项&#xff0c;从系统架构到数据安全&#xff0c;为医疗机构提供实用的开发指南。 1、需求分析与系统规划 在开发HIS系统的初期&#xff0c…

HTML5手机端通用网站模板源码

文章目录 1.设计来源1.1 主界面1.2 文章信息界面1.3 文章列表界面1.4 双列文章列表界面1.5 通用标签界面1.6 联系我界面1.7 折叠框标签界面1.8 相关界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作…

UE 【材质编辑】自定义ShadingMode

【UE 4.27.2】 在UE中提供了多种多样的ShadingMode&#xff0c;相当于一种风格化的处理方案(整体全面的流程调整)&#xff0c;切换ShadingMode可以看到不同的显示效果&#xff1a; 通过简单的拓展&#xff0c;我们可以实现自定义的ShadingMode&#xff0c;使得我们切换到自己的…

DevOps学习笔记

记录以下DevOps学习笔记&#xff0c;这里是笔记的入口汇总&#xff0c;可以直观的看到所有的笔记&#xff0c;还没有入口的部分&#xff0c;在下正在努力编写中。 gitlab jenkins docker docker安装 artifactory 1.artifactory安装 2.artifactory使用 计算机网络 1.dn…

MySQL:约束

目录 一、概述二、创建测试三、外键约束3.1 数据准备3.2 添加外键3.3 删除外键3.4 增加外键约束 一、概述 约束主要用于作用在表中字段上的规则&#xff0c;用于限制存储在表中的数据。 保证数据库中数据的正确性、有效性和完整性。 约束描述关键字主键约束非空并且唯一PRIMARY…