C++之map迭代器函数begin、end、rbegin、rend、cbegin、cend、crbegin、crend总结(二百零五)

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

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

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

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

欢迎关注Android系统攻城狮

1.前言

本篇目的:理解C++之map迭代器函数begin、end、rbegin、rend、cbegin、cend、crbegin、crend用法。

在C++中,map是一种关联容器,用于存储键-值对(key-value)数据。map提供了多种迭代器函数来遍历和访问其中的元素。

    1. begin()函数返回一个指向map中第一个键值对的迭代器。
    1. end()函数返回一个指向map末尾的迭代器,它并不指向实际的元素,而是指向末尾的下一个位置。
    1. rbegin()函数返回一个指向map末尾的逆向迭代器,即指向最后一个键值对的迭代器。
    1. rend()函数返回一个指向map开头的逆向迭代器,它并不指向实际的元素,而是指向开头的前一个位置。
    1. cbegin()函数和begin()函数类似,返回一个指向map中第一个键值对的常量迭代器。
    1. cend()函数和end()函数类似,返回一个指向map末尾的常量迭代器。
    1. crbegin()函数和rbegin()函数类似,返回一个指向map末尾的常量逆向迭代器。
    1. crend()函数和rend()函数类似,返回一个指向map开头的常量逆向迭代器。

这些迭代器函数可以用于遍历map中的元素,无论是正向还是逆向遍历。常量版本的迭代器函数(带有"c"前缀)返回的迭代器对象只能用来读取元素,不能修改元素值。

2.应用实例

1. begin() 函数:

#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto it = numbers.begin();std::cout << "The first element: " << *it << std::endl;return 0;
}

2. end() 函数:

#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto it = numbers.end() - 1;std::cout << "The last element: " << *it << std::endl;return 0;
}

3. rbegin() 函数:

#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto rit = numbers.rbegin();std::cout << "The last element (reversed): " << *rit << std::endl;return 0;
}

4. rend() 函数:

#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto rit = numbers.rend() - 1;std::cout << "The first element (reversed): " << *rit << std::endl;return 0;
}

5. cbegin() 函数:

#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto it = numbers.cbegin();std::cout << "The first constant element: " << *it << std::endl;return 0;
}

6. cend() 函数:

#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto it = numbers.cend() - 1;std::cout << "The last constant element: " << *it << std::endl;return 0;
}

7. crbegin() 函数:

#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto rit = numbers.crbegin();std::cout << "The last constant element (reversed): " << *rit << std::endl;return 0;
}

8. crend() 函数:

#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto rit = numbers.crend() - 1;std::cout << "The first constant element (reversed): " << *rit << std::endl;return 0;
}

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

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

相关文章

MES管理系统和ERP系统在生产制造管理中的应用

MES生产管理系统通过过程管理、质量管理、设备管理、产品跟踪和溯源、性能分析和物料管理等方面来管理生产制造&#xff0c;旨在建立规范的生产管理信息平台&#xff0c;提高企业核心竞争力。ERP系统则通过制定生产计划、细分物料需求计划、车间订单下达和生产回报等步骤进行生…

耐蚀合金连续油管最新版 学习记录

声明 本文是学习GB-T 42858-2023 耐蚀合金连续油管. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了耐蚀合金连续油管的订货、材料、制造、检验试验、标记等。 本文件适用于油气井用耐蚀合金连续油管(以下简称"油管")…

核心实验18_ospf高级_ENSP

项目场景&#xff1a; 核心实验18_ospf高级_ENSP 多区域虚链路 实搭拓扑图&#xff1a; 具体操作&#xff1a; R1: [R1]ospf 1 router-id 1.1.1.1 [R1-ospf-1]area 0 [R1-ospf-1-area-0.0.0.0]net 1.1.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]net 10.1.12.0 0.0.0.255 [R1-os…

阿里云服务器配置选择指南(2023新版教程)

阿里云服务器配置选择_CPU内存/带宽/存储配置_小白指南&#xff0c;阿里云服务器配置选择方法包括云服务器类型、CPU内存、操作系统、公网带宽、系统盘存储、网络带宽选择、安全配置、监控等&#xff0c;阿小云分享阿里云服务器配置选择方法&#xff0c;选择适合自己的云服务器…

Ubuntu18.04遇到的nodejs的坑记录

Ubuntu18.04安装nodejs的正确姿势 问题回顾 给我的博客网站整上代码高亮插件&#xff0c;在本地运行一切完美&#xff0c;可在我的Ubuntu18.04 bionic版本服务器上运行却报了以下的错误 ERROR in ./node_modules/highlight.js/lib/languages/xml.js Module parse failed: Er…

ArmSom-W3开发板之PCIE的开发指南(一)

1. 简介 RK3588从入门到精通本⽂介绍RK平台配置pcie的方法开发板&#xff1a;ArmSoM-W3 2、PCIE接口概述 PCIe&#xff08;Peripheral Component Interconnect Express&#xff09;是一种用于连接计算机内部组件的高速接口标准。以下是关于PCIe接口的简要介绍&#xff1a; …

uniapp 轮播列表左右滑动,滑动到中间放大

html <!-- 轮播 --><view class"heade"><swiper class"swiper" display-multiple-items3 circulartrue previous-margin1rpxnext-margin1rpx current0 change"swiperChange" ><block v-for"(item,index) in list"…

1020. 飞地的数量

1020. 飞地的数量 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 1020. 飞地的数量 https://leetcode.cn/problems/number-of-enclaves/description/ 完成情况&#xff1a; 解题思路&#xff1a; /**输入&…

uni-app直播从0到1实战

1.安装开发工具 2.创建项目 参考&#xff1a;uniapp从零到一的学习商城实战_云澜哥哥的博客-CSDN博客 3.编写公共样式&#xff1a;common.css & free.css App.vue引入公共文件&#xff1a; 图标库&#xff1a;iconfont-阿里巴巴矢量图标库

ARM Linux DIY(十二)NES 游戏

文章目录 前言交叉编译工具链使能 Cnes 游戏模拟器移植游戏手柄调试 前言 很多小伙伴为了不让自己的 V3s 吃灰&#xff0c;进而将其打造成游戏机。 我们 DIY 的板子具备屏幕、扬声器、USB Host&#xff08;可以接游戏手柄&#xff09;&#xff0c;当然也要凑一凑热闹。 交叉编…

CentOS 7删除virbr0虚拟网卡

在CentOS 7的安装过程中如果有选择相关虚拟化的的服务安装系统后&#xff0c;启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡&#xff0c;这个是因为在虚拟化中有使用到libvirtd服务生成的&#xff0c;如果不需要可以关闭后去掉&#xff1a; 一、查看IP及网桥设备 [r…

[源码系列:手写spring] IOC第十三节:Bean作用域,增加prototype的支持

为了帮助大家更深入的理解bean的作用域&#xff0c;特意将BeanDefinition的双例支持留到本章节中&#xff0c;创建Bean,相关Reader读取等逻辑都有所改动。 内容介绍 在Spring中&#xff0c;Bean的作用域&#xff08;Scope&#xff09;定义了Bean的生命周期和可见性。包括单例和…

短剧解说小程序搭建,短剧解说小程序源码

短剧解说小程序搭建&#xff0c;短剧解说小程序源码 可定制开发小程序&#xff0c;H5&#xff0c;APP等系统 有需要可定制可出源码&#xff0c;这个是啥你懂的(VVVVVVVVVVV)&#xff1a;二五四九七八九零五九 需要源码或搭建可看上面的数字信息 短剧解说小程序搭建 小程序使用…

【案例教学】华为云API图像搜索ImageSearch的快捷性—AI帮助您快速归类图片

云服务、API、SDK&#xff0c;调试&#xff0c;查看&#xff0c;我都行 阅读短文您可以学习到&#xff1a;人工智能AI同类型的相片合并归类 1 IntelliJ IDEA 之API插件介绍 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts IDE&#xff0c;基于华为云…

R5F5210BBDFB#10-ASEMI代理瑞萨芯片R5F5210BBDFB#10

编辑&#xff1a;ll R5F5210BBDFB#10-ASEMI代理瑞萨芯片R5F5210BBDFB#10 型号&#xff1a;R5F5210BBDFB#10 品牌&#xff1a;瑞萨&#xff08;Renesas) 封装&#xff1a;LFQFP-144 R5F5210BBDFB#10描述&#xff1a; R5F5210BBDFB#10具有1.62V至5.5V的宽工作电压范围&…

Linux内核4.14版本——drm框架分析(11)——DRM_IOCTL_MODE_ADDFB2(drm_mode_addfb2)

目录 1. drm_mode_addfb2 2. drm_internal_framebuffer_create 3. drm_fb_cma_create->drm_gem_fb_create->drm_gem_fb_create_with_funcs 4. drm_gem_fb_alloc 4.1 drm_helper_mode_fill_fb_struct 4.2 drm_framebuffer_init 5. 调用流程图 书接上回&#xff0c;使…

USB接口针式打印机

1 针式打印机原理 - 针式打印机16针是纵向排列&#xff0c;每次打印垂直的16bit&#xff0c;然后右移一bit&#xff0c;继续下列打印&#xff1b;字节的MSB表示最上面的点&#xff0c;字节LSB表示最下面的点 - 由于汉字字模的点阵是横向排列的&#xff0c;而提供给打印头的信息…

看板管理:以可视化方式确定任务优先级

确定工作的优先级是我们今天都要面对的挑战。若处理不当&#xff0c;我们就可能试图一心多用&#xff0c;从而严重损害工作效率。 使用看板方法来设定工作优先级是一种非常直观、快速的方法。 确定工作优先级的看板方法 看板工作流程管理方法的核心在于工作可视化。工作被划…

Docker基础入门

文章目录 前言一、什么是DockerDocker 安装Docker 镜像Docker 容器Docker 安装nginx 前言 在Linux上安装软件有三种方式&#xff1a; 在redhat系列下的发行版通过rpm包安装或者是在debian系列下的发行版通过deb包安装&#xff1b;通过工具安装&#xff0c;在redhat系列下的发…

Mybatis中动态SQL标签和内置参数介绍

Mybatis中动态SQL标签和内置参数 一、MyBatis动态SQL 1.1、sql标签 sql标签用于抽取公用的SQL代码&#xff0c;定义sql标签的时候需要通过【id】属性设置唯一标识。 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-…