C++之std::list<string>::iterator迭代器应用实例(一百七十九)

news2024/10/6 6:42:13

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:C++之std::list::iterator迭代器应用实例。

List迭代器介绍
在C++中,list是一个双向链表容器,可以用来存储和操作一系列的元素。迭代器是一种用于遍历容器的对象,它提供了对容器中元素的访问和操作。

对于list容器,有两种类型的迭代器可用:iteratorconst_iterator。它们的功能相似,但 iterator 可以用于修改容器中的元素,而 const_iterator 则只能用于读取元素,不能修改。

使用迭代器可以按照顺序访问链表中的元素,并进行增加、删除和修改操作。以下是一些常用的迭代器操作:

  • begin():返回指向链表第一个元素的迭代器。
  • end():返回指向链表末尾(最后一个元素之后)的迭代器。
  • rbegin():返回指向链表末尾的逆向迭代器(指向最后一个元素)。
  • rend():返回指向链表开头的逆向迭代器(指向第一个元素之前的位置)。
  • ++:将迭代器向后移动一个位置。
  • --:将迭代器向前移动一个位置。
  • *:返回当前迭代器指向的元素的引用。

2.应用实例

v1.0

#include <iostream>
#include <list>
#include <string>

typedef std::list<std::string>::iterator StringListIterator;

int main() {
    std::list<std::string> names{"Alice", "Bob", "Charlie"};

    StringListIterator iter = names.begin();

    while (iter != names.end()) {
        std::cout << *iter << std::endl;
        ++iter;
    }

    return 0;
}

v2.0

#include <iostream>
#include <list>

int main() {
    // 创建一个list并初始化一些值
    std::list<int> myList;
    myList.push_back(10);
    myList.push_back(20);
    myList.push_back(30);
    myList.push_back(40);
    myList.push_back(50);

    // 使用iterator迭代器遍历list
    std::list<int>::iterator iter;
    for (iter = myList.begin(); iter != myList.end(); ++iter) {
        std::cout << *iter << " ";
    }

    return 0;
}

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

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

相关文章

深度剖析:内部威胁监测中的 ADAudit Plus 关键作用

在数字时代&#xff0c;企业不仅需要抵御外部威胁&#xff0c;还必须密切关注内部威胁&#xff0c;因为内部因素可能对数据安全造成严重威胁。作为一种强大的内部威胁监测工具&#xff0c;ADAudit Plus 在这一领域发挥着关键作用。本文将深入探讨 ADAudit Plus 在内部威胁监测中…

【JUC】线程池ThreadPoolTaskExecutor与面试题解读

1、ThreadPoolTaskExecutor 创建线程池 从它的创建和使用说起&#xff0c;创建和使用的代码如下&#xff1a; 创建&#xff1a; ThreadPoolTaskExecutor executor new ThreadPoolTaskExecutor();executor.setCorePoolSize(corePoolSize);executor.setMaxPoolSize(maxPoolSize…

W5500-EVB-PICO做UDP Client进行数据回环测试(八)

前言 上一章我们用开发板作为UDP Server进行数据回环测试&#xff0c;本章我们让我们的开发板作为UDP Client进行数据回环测试。 连接方式 使开发板和我们的电脑处于同一网段&#xff1a; 开发板通过交叉线直连主机开发板和主机都接在路由器LAN口 测试工具 网路调试工具&a…

做线上虚拟展馆多少钱?如何通过线上虚拟展馆引流到线下?

引言&#xff1a; 在数字化时代的推动下&#xff0c;线上虚拟展馆正以全新的方式重新定义着展览体验。虚拟展馆是基于3D技术构建的数字空间&#xff0c;将传统的展览内容以数字化形式呈现&#xff0c;为参观者提供逼真的探索体验。这种前所未有的数字交互方式不仅为参观者带来…

没学C++,如何从C语言丝滑过度到python【python基础万字详解】

大家好&#xff0c;我是纪宁。 文章将从C语言出发&#xff0c;深入介绍python的基础知识&#xff0c;也包括很多python的新增知识点详解。 文章目录 1.python的输入输出&#xff0c;重新认识 hello world&#xff0c;重回那个激情燃烧的岁月1.1 输出函数print的规则1.2 输入函…

空洞卷积学习笔记

文章目录 1. 扩张卷积的提出2. 理解的难点 本片博客的主题思路来自于这篇文章——如何理解Dilated Convolutions(空洞卷积)&#xff0c;但是作者似乎是很久之前写的&#xff0c;文字的排版很混乱&#xff0c;自己来写一个新的。 1. 扩张卷积的提出 Multi-Scale Context Aggre…

【Git】(二)分支

1、创建分支 已存在主分支master&#xff0c;现在需要创建v1.0的版本&#xff0c;一般直接在web页面操作。 v1.0分支&#xff0c;基线master&#xff0c;称为项目分支。 假如&#xff0c;v1.0项目存在两个项目成员sunriver2000和snow&#xff0c;一般还会再针对个人创建个人…

2023一建考点精编

1Z301030建设工程代理制度 1.代理是指代理人在被授予的代理权限范围内&#xff0c;以被代理人的名义与第三人实施法律行为&#xff0c;而行为后果由该被代理人承担的法律制度。代理涉及三方当事人&#xff0c;即被代理人、代理人和代理关系所涉及的第三人。 2.代理包括委托代…

接口测试工具——Postman测试工具 Swagger接口测试+SpringBoot整合 JMeter高并发测试工具

目录 Postman测试工具接口测试工具swaggerKnife4j1.引入依赖2.配置3.常用注解4.接口测试 JMeter什么是JMeter?JMeter安装配置1.官网下载2.下载后解压3.汉语设置 JMeter的使用方法1.新建线程组2.设置参数3.添加取样器4.设置参数&#xff1a;协议&#xff0c;ip&#xff0c;端口…

为什么说电子商务个性化是所有跨境电商需要关心的?

电子商务个性化就是个性化客户体验的行为&#xff0c;以便每个购物者都是独一无二的&#xff0c;比如您可以收到来自包含您的名字的品牌的电子邮件等&#xff0c;或者当您在线购物并查看基于您以前的浏览历史记录的商品推荐&#xff0c;这些就是购物个性化。如今很多企业都开始…

使用虚拟环境conda安装不同版本的cuda,cudnn,pytorch

背景&#xff1a;在学习深度学习时&#xff0c;我们不可避免的需要跑多个神经网络&#xff0c;而不同的神经网络环境都不一样&#xff0c;所以必须要使用到虚拟环境(如conda)去做环境隔离&#xff0c;安装属于自己的环境。在这环境中&#xff0c;大多神经网络都必须要用到cuda&…

【RocketMQ】安装

文章目录 下载RocketMQ配置环境变量 下载RocketMQ 下载RocketMQ安装包 下载DashBoard 这里版本推荐选择4.9.x&#xff0c;因为比较稳定。 下载完毕之后&#xff0c;将安装包拖入到Linux环境。 之后使用unzip命令解压缩RocketMQ的安装包。 unzip ./rocketmq-all-4.9.2-bin-rel…

Springboot 实践(6)spring security配置与运用

前文讲解了springboot项目添加静态资源目录&#xff0c;到目前为止&#xff0c;项目已经建立了后台服务控制、静态资源目录等服务&#xff1b;项目开发是为特定用户服务的&#xff0c;不具备访问权限用户&#xff0c;不允许访问系统&#xff0c;那么如何对系统资源进行保护呢&a…

操作系统-笔记-第二章-进程

目录 二、第二章——【进程】 1、进程的概念 &#xff08;1&#xff09;PID & PCD 进程控制块 &#xff08;2&#xff09;程序段 & 数据段 &#xff08;3&#xff09;特征 &#xff08;特性&#xff09; property &#xff08;4&#xff09;总结 2、进程的状态 …

配置应用/配置权限提升

配置应用 配置 servera 上的应用 ex200 &#xff0c;要求如下&#xff1a;当以用户 pandora 运行 ex200 时&#xff0c;它将显示 borough lively excursion nephew scarce find / | grep ex200 which ex200wim /usr/local/bin/ex200 echo borough lively excursion nephew …

【Java集合框架面试题(30道)】

文章目录 Java集合框架面试题(30道)引言1.说说有哪些常见集合&#xff1f; List2.ArrayList和LinkedList有什么区别&#xff1f;3.ArrayList的扩容机制了解吗&#xff1f;4.ArrayList怎么序列化的知道吗&#xff1f;为什么用transient修饰数组&#xff1f;5.快速失败&#xff0…

工厂无线安灯呼叫系统解决方案

在现代制造业中&#xff0c;生产线的高效运作是企业成功的关键之一。为了实现生产线的顺畅运转&#xff0c;安灯系统成为了制造业生产现场的必备工具。安灯系统是一个专门应用软硬件系统&#xff0c;旨在快速联络生产、物料、维修、主管等部门&#xff0c;以满足生产线的需求并…

【STM32RT-Thread零基础入门】 5. 线程创建应用(线程创建、删除、初始化、脱离、启动、睡眠)

硬件&#xff1a;STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线 文章目录 前言一、线程管理接口介绍二、任务&#xff1a;使用多线程的方式同时实现led闪烁和按键控制喇叭&#xff08;扫描法&#xff09;1. RT-Thread相关接…

根据两组相关联数据(部门 + 用户),生成列表树

文章目录 背景想要得到的数据格式业务层获取数据&#xff0c;部门及用户&#xff0c;构建树结构TreeUtil生成的格式部门实体用户实体 背景 目前拥有用户和部门两组数据&#xff0c;根据部门和用户的关系&#xff0c;生成部门树&#xff0c;且每个部门下拥有哪些与子部门同级的…

接口自动化测试框架搭建

为什么要做&#xff08;自动化&#xff09;接口测试&#xff1f; 1、由于现在各个系统的复杂度不断上升&#xff0c;导致传统的测试方法成本上升且测试效率大幅下降&#xff0c;而接口测试相对于UI测试更加稳定&#xff0c;且相对容易实现自动化持续集成&#xff0c;可以减少人…