STL标准库(二)序列容器之array

容器

容器的本质是类模板,分为序列容器和关联容器

序列容器

array 固定数组 应用包含arrry库

vector 动态数组 应用包含 vector库

deque 双端队列

list 双向链表

forward_list 单向链表

stack 栈

queue 队列

prority 优先队列

array应用

int main()

{

    std::array<int, 5> ObjArr = { 0,1,2,3,4 }; 声明一个int类型五个长度的固定数组,并初始化,等同于int arr[5],一普通数组,系统再加一些方法一些迭代器等等

    std::cout << ObjArr.size() << std::endl; 输出数组大小

    for (size_t i = 0; i < 5; i++) 遍历该数组

    {

       std::cout << ObjArr[i] << "\t";

    }

    std::cout << std::endl;

    std::array<int, 5> ObjArr2(ObjArr); 调用拷贝构造

    for (size_t i = 0; i < 5; i++)

    {

       std::cout << ObjArr2[i] << "\t"; 同被拷贝数组一致

    }

    std::cout << std::endl;

    ObjArr[4] = 120; 该数组可以同普通数组一样进行赋值

    for (size_t i = 0; i < 5; i++)

    {

       std::cout << ObjArr[i] << "\t";

    }

    std::cout << std::endl;

    ObjArr.at(3) = 12138; 修改第三个下标为12138

    for (size_t i = 0; i < 5; i++)

    {

       std::cout << ObjArr[i] << "\t";

    }

    std::cout << std::endl;

    std::cout << ObjArr.data() << "\t";

    std::cout << std::endl;

    int * p = ObjArr.data(); 获取数组真实地址,指向该数组内存首地址

    for (size_t i = 0; i < 5; i++) 遍历输出该数组

    {

       std::cout << *p++ << "\t";

    }

    std::cout << std::endl;

    std::cout << ObjArr.front() << std::endl; 获取数组首位置元素

    std::cout << ObjArr.back() << std::endl; 获取数组末位置元素

    if (ObjArr.empty()) 判断当前数组是否为空

    {

       std::cout << "Enpty" << std::endl;

    }

}

迭代器应用

template <typename T> 创建一个模板

void print(T Begin, T end) 遍历打印

{

    for (T i = Begin; i != end; ++i)

    {

       std::cout << *i << std::endl;

    }

    std::cout << std::endl;

}

int main()

{

    using ArrayIterator = std::array<int, 5>::iterator; 使用迭代器

    std::cout << typeid(ArrayIterator::iterator_category).name() << std::endl;获取该迭代器类型,是随机访问迭代器

    std::array<int, 5>::iterator begin = ObjArr.begin();

    std::array<int, 5>::iterator end = ObjArr.end();

    print<std::array<int, 5>::iterator>(begin, end); 打印遍历该迭代器

    std::array<int,  5>::iterator   tempvarA = ObjArr.begin() + 2; 打印第三个元素

    std::cout << *tempvarA << std::endl;

    tempvarA++; 地址++

    std::cout << *tempvarA << std::endl;

    tempvarA--; 地址--

    std::cout << *tempvarA << std::endl;

    tempvarA -= 2; 地址-2

    std::cout << *tempvarA << std::endl;

    std::cout << tempvarA[3] << std::endl; 打印下标3的元素

    *tempvarA = 555; 修改当前地址即首地址的值为5

    print<std::array<int, 5>::iterator>(begin, end);

    std::cout << "--------------------------------" << std::endl;

    std::cout << ObjArr.front() << std::endl; 输出第一个元素

    std::cout << "--------------------------------" << std::endl;

    std::cout << ObjArr.back()<< std::endl; 输出最后一个元素

    std::cout << *ObjArr.rbegin() << std::endl; 输出反向第一个元素

    print(ObjArr.rbegin(), ObjArr.rend());输出反向第一个和最后一个元素

    system("pause");

    return 0;

}

以下为该程序输出结果

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

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

相关文章

现代密码学基础(2)

目录 一. 介绍 二. 举例&#xff1a;移位密码 &#xff08;1&#xff09;密文概率 &#xff08;2&#xff09;明文概率 三. 举例&#xff1a;多字母的移位密码 四. 完美安全 五. 举例&#xff1a;双子母的移位密码 六. 从密文角度看完美安全 七. 完美保密性质 一. 介绍…

NVIDIA 再现逆天刀法,千元级 RTX 新卡曝光

这年头&#xff0c;价格 1 字开头入门甜品显卡几乎真就成 N、A 两家弃子了。 以 NVIDIA RTX 4060 与 AMD RX 7600 为例&#xff0c;这两块显卡同为两家新品中最低端型号&#xff0c;其价格直接来到 2K 左右起步。 要知道目前很多普通用户选购一台日常办公、游戏电脑主机&#…

vue(vue2)使用svg格式图标

先安装插件 配置svg文件夹&#xff0c;新建icons文件&#xff0c;svg文件夹放svg后缀文件 index.js文件中的配置 import Vue from "vue" import svgIcon from "/common/iconSvg/index.vue"Vue.component(svg-icon,svgIcon) //挂载全局组件//下面…

Python with Office 054 - Work with Word - 7-9 插入图像 (3)

近日详细学习了寒冰老师的很好的书《让Python遇上Office》&#xff0c;总结了系列视频。 这个是其中的一集&#xff1a;如何在Word中插入图像&#xff0c;我会陆续分享其他的视频并加上相应说明 https://www.ixigua.com/7319498175104942643?logTage9d15418663166a05d10

小程序商城能不能自己开发?

在数字化时代&#xff0c;小程序商城已经成为商家拓展销售渠道、提升品牌影响力的重要工具。那么&#xff0c;商家能否自己动手开发小程序商城呢&#xff1f;答案是肯定的。接下来&#xff0c;以乔拓云为例&#xff0c;为大家详细介绍如何自己搭建小程序商城。 首先&#xff0c…

ntp时间适配服务器和ssh免密登录

1&#xff0e;配置ntp时间服务器&#xff0c;确保客户端主机能和服务主机同步时间 服务端server向阿里时间服务器进行时间同步 第一步&#xff1a;定位服务端server #安装软件 [rootserver ~]# yum install chrony -y # 编辑配置文件&#xff0c;定位第3行&#xff0c;修改…

75.网游逆向分析与插件开发-背包的获取-背包结构与指针的逆向分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;物品名称与物品编号的映射关系分析-CSDN博客 通过上一个内容已经可以通过物品的id得到一个名字&#xff0c;知道了它的算法&#xff0c;它的算法自己封装好了&#xff0c;我们直接用就好&#xff0c;…

机器学习之numpy库

机器学习之numpy库 numpy库概述numpy库历史numpy的核心numpy基础ndarray数组内存中的ndarray对象ndarray数组对象的特点ndarray数组对象的创建ndarray对象属性的基本操作数组的维度元素的类型数组元素的个数数组元素索引(下标) ndarray对象数组的自定义类型切片操作一维数组切片…

【趣味游戏-08】20240123点兵点将点到谁就是谁(列表倒置reverse)

背景需求&#xff1a; 上个月&#xff0c;看到大4班一个孩子在玩“点兵点将点到谁就是谁”的小游戏&#xff0c;他在桌上摆放两排奥特曼卡片&#xff0c;然后点着数“点兵点将点到谁就是谁”&#xff0c;第10次点击的卡片&#xff0c;拿起来与同伴的卡片进行交换。他是从第一排…

npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED

npm install时报错code CERT_HAS_EXPIRED 一、报错情况二、解决方案 一、报错情况 一直用的好好的&#xff0c;突然今天发现npm install 出问题了&#xff0c;具体报错如下&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to…

unity项目《样板间展示》开发:火焰和UI设计

第二章&#xff1a;火焰和UI设计 前言一、火焰模型管理灶台火焰壁炉火焰 二、电视机播放三、UI设计结语 前言 这次带大家从0到1做一个unity项目&#xff1a;《样板间展示》。 顾名思义&#xff0c;项目内容是展示样板间&#xff0c;即玩家可以与房间中的物体、家具进行交互。 至…

30天零售应用构建挑战:低代码平台的惊人潜力

随着零售业格局的不断演变&#xff0c;零售商正被迫在一个日益活跃、竞争日益激烈的客户驱动型市场中展开竞争。随着互联网上产品信息和评论的出现&#xff0c;消费者的态度发生了巨大的变化——购物者不再依赖销售人员来获取信息。他们现在知道的和许多零售销售人员一样多&…

Portainer Docker容器可视化管理平台实践

Portainer Docker容器可视化管理平台实践 引安装登录Remote ENV 实践 引 平常用docker命令操作比较多&#xff0c;找了一款docker可视化工具&#xff0c;方便快速预览和批量操作&#xff0c;不想一行一行敲的时候&#xff0c;可以偷偷懒。Portainer试用了一下&#xff0c;安装…

linux的安装配置

文章目录 1.centos7安装2.如何进行一个网络的开启3.客户端Xshell和Xftp的一个使用4.换源 1.centos7安装 1.我是在虚拟机里面重装了一个liunx系统,首先我们新建一个虚拟机 2.前面东西都不需要我们进行一个选择&#xff0c;到图中的这一步我们选择一个liunx,版本的话我们选择一个…

网络防御保护1

网络防御保护 第一章 网络安全概述 网络安全&#xff08;Cyber Security&#xff09;是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断 随着数…

Midjourney基础 | 使用流程 注册,基础文生图,图的放大微调,保存

文章目录 1 使用流程2 生成自己的第一张图3 图的放大&#xff0c;微调3.1 放大3.2 微调变化 4 图的保存 Midjourney是依托于Discord的&#xff0c;但我也是通过Midjourney才了解的Discord 维基百科说~~Discord是一款专为社群设计的免费网络实时通话&#xff0c;主要针对游戏玩家…

请你来了解一下Mysql-InnoDB中事务的两段式提交

欢迎订阅专栏&#xff0c;了解更多Mysql的硬核知识点&#xff0c;原创不易&#xff0c;求打赏 ACID&#xff1a;事务的四个特性 A&#xff1a;原子性 原子性表示把一个事务中所有的操作视为一个整体&#xff0c;要么全部成功&#xff0c;要么全部失败&#xff0c;是事务模型区…

Flink处理函数(2)—— 按键分区处理函数

按键分区处理函数&#xff08;KeyedProcessFunction&#xff09;&#xff1a;先进行分区&#xff0c;然后定义处理操作 1.定时器&#xff08;Timer&#xff09;和定时服务&#xff08;TimerService&#xff09; 定时器&#xff08;timers&#xff09;是处理函数中进行时间相关…

LeetCode_11_中等_盛最多水的容器

文章目录 1. 题目2. 思路及代码实现&#xff08;Python&#xff09;2.1 双指针 1. 题目 给定一个长度为 n n n 的整数数组 h e i g h t height height 。有 n n n 条垂线&#xff0c;第 i i i 条线的两个端点是 ( i , 0 ) (i, 0) (i,0) 和 ( i , h e i g h t [ i ] ) (i…

联想M7268、7208打印机加粉清零方法

联想小新M7268激光一体机基本参数 产品类型 黑白激光多功能商用一体机 涵盖功能 打印/复印/扫描 最大处理幅面 A4 耗材类型 鼓粉分离 耗材容量 硒鼓LD2268&#xff1a;10000页&#xff0c;墨粉LT2268&#xff1a;1000页 双面功能 手…