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

vector 动态数组 本质是向量,一个无限续存的连续内存空间

int main()

{

    std::vector<int> obj(5); 创建一个容量为5且默认值为0的vector

    std::vector<int> obj(5,12138); 创建一个容量为5且默认值为12138的vector

    std::cout << obj.capacity() << std::endl; 查看当前vector容量

    std::cout << obj.size() << std::endl;查看当前vector元素个数

    for (size_t i = 0; i < obj.size(); i++) 遍历输出vector

    {

        std::cout << obj[i] << std::endl;

    }

    std::vector<int> obj2(obj); 拷贝obj

    for (size_t i = 0; i < obj.size(); i++) 遍历输出obj2元素值

    {

        std::cout << obj2[i] << std::endl;

    }

    obj[1] = 222; 可以直接对vector元素进行修改

    obj.at(2) = 333; 此方法也可进行修改元素

    for (size_t i = 0; i < obj.size(); i++) 遍历输出vector元素

    {

        std::cout << obj[i] << std::endl; 使用其特性操作符[]

    }

    std::cout << typeid(std::vector<int>::iterator::iterator_category).name() << std::endl; 输出迭代器类型

    ++ -- += + - -= * [] 随机访问迭代器的特性操作符

     begin end 执行第一个和最后一个的下一个元素

    cbegin cend 常量

    rbegin rend 反向

    obj.begin() 获取obj首元素地址

    std::cout << *(++obj.begin()) << std::endl; 打印begin下一个元素

    *obj.begin() = 147; 修改第一个元素为147

    *(obj.begin()+2) = 147; 修改第三个元素为147

    for(auto i = obj.begin(); i != obj.end(); i++)使用迭代器进行循环遍历

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

    } 可正常打印

        for (size_t i = 0; i < obj.size(); i++) 初始化vector

    {

       obj[i] = i;

    }

    for (auto i = obj.rbegin(); i != obj.rend(); i++) 利用反向迭代器进行遍历打印

    {

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

    }

    std::cout << obj.front() << std::endl; 访问首元素

    std::cout << obj.back() << std::endl; 访问尾元素

    obj.push_back(5); 再尾部插入元素5

    std::cout << obj.back() << std::endl;再次打印尾部元素,发现是5

    obj.insert(obj.begin() + 2, 555); 在下标2位置插入元素555

    obj.pop_back(); 删除尾部元素

    obj.erase(obj.begin() + 2); 删除下标2位置元素

    for (auto i = obj.begin(); i != obj.end(); i++)

    {

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

    }

   

    std::cout << obj.capacity() << std::endl;每当多加入一个元素,容量就加一,但此时再删除元素,容量不变,经上述代码执行,容量为7

    std::cout << obj.size() << std::endl; 元素个数为5

    obj.clear();清除所有元素

    for (auto i = obj.begin(); i != obj.end(); i++)

    {

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

    }

此时无法遍历,因为没有元素

return 0;

}

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

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

相关文章

多维时序 | Matlab实现CNN-GRU-Mutilhead-Attention卷积门控循环单元融合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现CNN-GRU-Mutilhead-Attention卷积门控循环单元融合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现CNN-GRU-Mutilhead-Attention卷积门控循环单元融合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍…

深度学习-自然语言推断

自然语言推断&#xff08;natural language inference&#xff09;主要研究 假设&#xff08;hypothesis&#xff09;是否可以从前提&#xff08;premise&#xff09;中推断出来&#xff0c; 其中两者都是文本序列。 换言之&#xff0c;自然语言推断决定了一对文本序列之间的逻…

退出微软账号,edge/必应退出账号

微软账号退出&#xff1a;搜的教程都是说改成本地帐号&#xff0c;但是我的已经是本地帐号&#xff0c;操作没用。 但是找到了退出edge/必应浏览器账号的方法&#xff0c;见下图。 参考链接&#xff1a;奶酪真好次个人动态-奶酪真好次动态记录-哔哩哔哩视频 (bilibili.com)

【Linux】基本指令收尾

文章目录 日期查找打包压缩系统信息Linux和Windows互传文件 日期 这篇是基本指令的收尾了&#xff0c;还有几个基本指令我们需要说一下 首先是Date&#xff0c;它是用来显示时间和日期 直接输入date的话显示是有点不好看的&#xff0c;所以我们可以根据自己的喜欢加上分隔符&…

python常用命令汇总

一、下载对应源地址的库 以下是国内的python库原地址 清华&#xff1a;-i https://pypi.tuna.tsinghua.edu.cn/simple 阿里云&#xff1a;-i http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 -i https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学&#xff1a;-…

使用 Vector 在 Kubernetes 中收集日志

多年来&#xff0c;我们一直在使用 Vector 在我们的 Kubernetes 平台中收集日志&#xff0c;并成功地将其应用于生产中以满足各种客户的需求&#xff0c;并且非常享受这种体验。因此&#xff0c;我想与更大的社区分享它&#xff0c;以便更多的 K8s 运营商可以看到潜力并考虑他们…

【 CSS 】基础1

“坚持就是胜利。” - 温斯顿丘吉尔 【 CSS 】基础 1 CSS 简介 CSS 是层叠样式表 ( Cascading Style Sheets ) 的简称.有时我们也会称之为 CSS 样式表或级联样式表。CSS 也是一种标记语言CSS 主要用于设置 HTML 页面中的文本内容&#xff08;字体、大小、对齐方式等&#xff…

力扣日记1.22-【回溯算法篇】216. 组合总和 III

力扣日记&#xff1a;【回溯算法篇】216. 组合总和 III 日期&#xff1a;2023.1.22 参考&#xff1a;代码随想录、力扣 216. 组合总和 III 题目描述 难度&#xff1a;中等 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数…

Python使用gRPC入门,定义proto文件和收发消息

gRPC 一开始由 google 开发&#xff0c;是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。 本文通过一个简单的 Hello World 例子来向您介绍 gRPC 。 Grpc官方文档地址&#xff1a;Quick start | Python | gRPC gRPC 是什么&#xff1f; gRPC 也是基于以下理念&#…

Python武器库开发-武器库篇之Quake360-API使用(四十七)

Python武器库开发-武器库篇之Quake360-API使用(四十七) Quake360是一款网络资产搜索引擎&#xff0c;旨在帮助用户快速定位和识别网络上的资产信息。它具有强大的搜索功能&#xff0c;可以搜索并展示各种类型的网络资产&#xff0c;包括域名、IP地址、子域名、端口信息等。同时…

Unity编程#region..#endregion以及面板提示语标签[Tooltip(““)]

C#中的#region..#endregion 在Unity中&#xff0c;#region和#endregion是用于代码折叠的预处理指令。它们并不是Unity特有的&#xff0c;而是C#语言本身提供的功能。 #region用于标记一段代码的开始&#xff0c;而#endregion用于标记一段代码的结束。在编辑器中&#xff0c;可…

流量劵可以用来做什么?如何使用电脑提高工作效率

好久没来看了,一分钱收益也没有,不过倒是起了一点知识的积累传播。正确与否先不去考究,从有文字记载的历史来看,有记录这本身就是一种进步。最近偶尔会用到电脑处理一些EXCEL文档,很多的工作都是重复和简单的数学计算,然后去核对数据是不是勾稽得当。工作虽然不多,但也是…

橡木桶陈酿:木材选择、烤制程度与陈酿时间

在威士忌的酿造过程中&#xff0c;橡木桶陈酿是一个至关重要的环节。橡木桶不仅为威士忌提供了特别的香气和风味&#xff0c;还赋予其丰富的颜色和味蕾。本文将深入探讨橡木桶陈酿的奥秘&#xff0c;特别是木材选择、烤制程度以及陈酿时间对威士忌风味的影响&#xff0c;以雷盛…

【Linux】解决普通用户无法进行sudo提权

当某个普通用户进行sudo指令提权的时候&#xff0c;可能存在无法操作的问题&#xff0c;如下图&#xff1a; 这个图中有一个细节&#xff0c;我们使用sudo进行提权的时候&#xff0c;用的可是zhangsan的密码&#xff0c;因此有人可能会有疑问&#xff0c;这不是有问题吗&#x…

常见java,数据库锁汇总篇,舍我其谁

一 锁概念 1.1 java锁介绍 1.乐观锁 在select的时候不会加锁&#xff0c;是基于程序实现的&#xff0c;所以不会存在死锁的情况。 适用于读多写少的场景&#xff08;写的并发量相对不高&#xff09;&#xff0c;可以提高系统的吞吐量。 因为如果写多的话&#xff0c;乐观锁会…

安泰电子电压放大器的三个特性是指什么

电压放大器是一种主要用于将输入电压信号放大的电子器件。它的工作原理是通过增加电压信号的幅度&#xff0c;使得输出信号比输入信号有更大的电压差。电压放大器通常具有许多特性&#xff0c;其中三个主要特性包括增益、带宽和线性度。 增益是电压放大器最重要的特性之一。增益…

RabbitMQ-消息延迟

一、死信交换机 1、描述 一个队列接收到的消息有过期时间&#xff0c;消息过期之后&#xff0c;如果配置有死信队列&#xff0c;消息就会进去死信队列。 2、图解 3、过程 当生产者将消息发送到exchange1&#xff0c;然后交换机将消息路由到队列queue1&#xff0c;但是队列que…

JavaScript进阶:WebAPIs重点知识整理1

目录 1 DOM修改元素内容 2 DOM修改元素常见属性 3 修改元素样式属性 3.1 通过style修改元素样式 3.2 通过类名className修改元素样式 3.3 通过classList修改元素样式 4 操作表单元素属性 5 自定义属性 6 定时器 7 事件监听 7.1 点击事件 click 7.2 鼠mouseenter和移…

【Linux】权限 !

Linux 权限 Liunx Linux 权限1 什么是权限1.1 Linux用户1.2 切换用户 2 权限管理2.1 文件访问者的分类2.2 文件类型和访问权限2.3 文件权限的设置方法chmod 命令chown 命令chgrp 命令umask 命令file 指令 2.4 目录权限粘滞位 3 权限总结 1 什么是权限 关于Linux的权限问题&…

项目风险管理

风险分类&#xff1a; 分类性质&#xff1a;纯粹风险&#xff0c;投机风险---对应火灾&#xff0c;股票买卖 产生原因&#xff1a;自然&#xff0c;社会&#xff0c;政治&#xff0c;经济&#xff0c;技术 风险性质&#xff1a;客观性&#xff0c;偶然性&#xff0c;相对性&a…