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

每日学习笔记005:(C++)迭代器

每日学习笔记005:(C++)迭代器

一、迭代器简介

在C++中,迭代器(Iterator)是一种设计模式,它提供了一种统一的方式来访问容器(如向量、链表、数组等)中的元素。迭代器就像是一个指针,它可以指向容器中的一个元素,并且可以通过迭代器来遍历容器中的元素。

迭代器的主要优点在于它提供了一种通用的访问容器元素的方法,使得代码更加模块化和可复用。不同类型的容器(如std::vector、std::list等)都可以使用迭代器来访问元素,尽管这些容器内部的数据结构可能完全不同。

迭代器操作灵活支持++,–。

二、使用迭代器的示例(以std::vector为例)

#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <list>
#include <string>

using namespace std;

int main() {
    // 创建一个vector容器并初始化
    std::vector<int> vec = {1, 2, 3, 4, 5};
    // 创建一个迭代器,指向vector的开始位置
    std::vector<int>::iterator it = vec.begin();
    std::vector<int>::reverse_iterator itr= vec.rbegin();
    // 使用迭代器遍历vector并输出元素
    while (it!= vec.end()) {
        std::cout << *it << " ";
        ++it;
    }
    std::cout << std::endl;
    while (itr != vec.rend()) // rend()指向第一个元素的前一个位置
    {
        std::cout << *itr << std::endl;
        itr++; // 指向下一个元素
    }
    std::map<string, string> map1 { //std::map容器会根据键的字典顺序自动排序。在初始化std::map时,键值对是按照键的字母顺序插入的。
    {"hello", "你好"},
    {"world", "世界"},
    {"luke", "skywalker"}};
    auto itm = map1.begin();

    while (itm != map1.end())
    {
        std::cout << itm->first << " : " << itm->second << std::endl;
        itm++;
    }
    return 0;
}

http://www.kler.cn/a/405265.html

相关文章:

  • RocketMQ: 集群部署注意事项
  • 多算法模型(BI-LSTM GRU Mamba ekan xgboost)实现功率预测
  • C++:类和对象(三)
  • 【FFmpeg】FFmpeg 内存结构 ③ ( AVPacket 函数简介 | av_packet_ref 函数 | av_packet_clone 函数 )
  • MyBatis的resultType和resultMap区别
  • Spring Web入门练习
  • Spring Boot核心概念:自动配置
  • 国土变更调查拓扑错误自动化修复工具的研究
  • 湘潭大学人工智能考试复习1(软件工程)
  • 应用系统开发(13) 在 Xilinx FPGA 中实现自定义累加平均低通滤波器
  • 魔众题库系统 v10.0.0 客服条、题目导入、考试导航、日志一大批更新
  • ISO 21434标准:汽车网络安全管理的利与弊
  • XCVU13P板卡设计原理图:509-基于XCVU13P的4路QSFP28光纤PCIeX16收发卡
  • mysqldbcompare 使用及参数详解
  • 【HarmonyOS】鸿蒙应用接入微博分享
  • Elasticsearch 6.8 分析器
  • 【Lucene】Lucene的索引文件格式:深入理解Lucene使用的索引文件格式
  • Spring Boot教程之五:在 IntelliJ IDEA 中运行第一个 Spring Boot 应用程序
  • GoZero 上传文件File到阿里云 OSS 报错及优化方案
  • 服务器数据恢复—raid5阵列故障导致上层系统分区无法识别的数据恢复案例
  • java-贪心算法
  • ubuntu显示管理器_显示导航栏
  • ESLint的简单使用(js,ts,vue)
  • 什么是Hadoop
  • java的hashmap的底层设计原理以及扩容规则
  • MagicQuill,AI动态图像元素修改,AI绘图,需要40G的本地硬盘空间,12G显存可玩,Win11本地部署