C++(14)——vector

目录

vector是什么?

vector的使用

vector的构造

vector iterator的使用

vector空间增长问题

vector的增删查改

push_back和pop_back

operator[]

总结


vector是什么?

vector是什么呢?按照英文来说,vector的英文是向量、矢量的意思。我们在cpp的网址上搜索vector,结果如下:

从搜索结果来说,vector是一个模板类,是顺序表。

因此,我们知道,vector是一个可以改变大小数组的序列容器。

有了前面学习数据结构的知识,我们使用一下vector。

vector的使用

我们接下来使用以下vector的常见接口。

vector的构造

这些都是常见的vector的构造。因为vector是一个模板类,所以vector也可以创建vector<int>类的实例和string类的实例。这样就像一个二维数组一样。

vector iterator的使用

说起迭代器大家肯定不陌生,因为string那里我们分享过,vector的迭代器和string是一样的,我们直接上代码。

vector空间增长问题

还是我们熟悉的几个接口,size、capacity、empty、resize、reserve。

我们先看一下vs环境下vector的空间开辟。

接下来我们看一resize和reserve是怎么扩容的。

看起来,resize和reserve的扩容和string是一样的,都是如果比当前空前小,就不缩小,只有比当前空间大才扩容。

vector的增删查改

我们说了,vector是一个顺序表,按照数据结构我们知道顺序表是可以增删查改的。主要有一下几个接口:push_back、pop_back、find、insert、erase、swap和operator[]。我们主要介绍push_back、pop_back和operator[]。

push_back和pop_back

这个和顺序表的尾插和尾删一样。为什么没有头插和头插呢?因为头删和头插都要挪动数据,时间复杂度很高。

operator[]

运算符重载,让我们可以按照数组一样使用vector。

总结

以上就是vector常见的用法了,还有一些函数,大家可以在cplusplus上面查找相关的的用法。

cplusplus.com - The C++ Resources Network

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

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

相关文章

编译原理学习之-一个简单的语法制导翻译器

第二章 一个简单的语法制导翻译器 将具有代表性的程序设计语言语句翻译为三地址码&#xff08;一种中间表示形式&#xff09;&#xff0c;本章的重点是编译器的前端&#xff0c;特别是词法分析&#xff0c;语法分析和中间代码生产。 建立一个中缀算术表达式转换为后缀表达式的…

腾讯云服务器入站规则端口开放使用指南(CentOS系统)

第一步&#xff1a;开放安全组入站规则 来源处0.0.0.0/0是对IPv4开发&#xff0c;::/0是对IPv6开放&#xff1b; 协议端口按照提示填写即可。云服务器防火墙开放 第三步&#xff1a;本地防火墙开放 sudo firewall-cmd --zonepublic --add-port你的端口号/tcp --perma…

蓝桥杯单片机快速开发笔记——HC573/HC138

一、原理分析 二、思维导图 三、代码参考 #include "HC573.h" #include "reg52.h"void Set_HC573(unsigned char channel, unsigned char dat) {P2 (P2 & 0x1f) | 0x00; //赋值之前&#xff0c;关闭全部锁存器P0 dat; //保存待设置…

医疗企业数字化升级,高效组网方案助力解决痛点

多分支机构间的网络构建问题日益突显源于不同行业、不同企业之间的数字化需求和挑战不尽相同&#xff0c;原有架构亟需升级优化已是愈加紧迫的事项。 在医疗行业中&#xff0c;由于数字化技术与模式的深入应用&#xff0c;企业的生产和协作方式从传统的线下模式转变为高效的线…

【Vue3】Vue3中路由规则的 props 配置

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

XUbuntu22.04之自定义fd+rg极速命令组合(二百二十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

开源堡垒机Jumpserver安装教程

前言:堡垒机的应用场景 公司内有若干台服务器,既有windows的也有linux的, 提供有ERP,OA,Web,报表等等各种服务,往往需要远程登录到服务器上去做运维,但如果给root或者administrator权限,很容易出现不知道谁操作了的问题.如果不同人设置不同账号,又账号过多,权限不足等等其他问题…

Docker 安装部署 ORACLE 11g数据库

Docker 安装部署 ORACLE 11g数据库 背景&#xff1a; ​ 最新在开发数据中台数据接入模块&#xff0c;其中设计很多数据类型&#xff0c;包括ORACLE &#xff0c;因为是测试使用&#xff0c;想着快速部署测试&#xff0c;于是使用Docker 部署 Oracle , 生产环境不建议使用Doc…

js-循环返回多条数据,每条数据文本超过三行进行展开与收起的实现

1.基本需求 返回多条数据&#xff0c;每条数据在一定宽度的盒子内&#xff0c;文本超过三行进行文本的展开与收起 2.实现逻辑 对于返回的每条数据添加属性expend&#xff1a;false来在循环中进行对于展开收起的判断。 动态计算盒子宽度随着分辨率的变化而变化的值boxWidth。获…

代码随想录刷题day24|回溯理论基础组合问题

文章目录 day24学习内容一、修剪二叉搜索树1.1、什么是回溯法1.2、递归与回溯1.3、回溯法的效率1.4、回溯法解决的问题类型1.5、如何理解回溯法1.6、回溯算法模板 二、组合问题2.1、思路2.2、正确写法-没有剪枝2.2.1、为什么不能写i < n2.2.2、为什么不能写startIndex02.2.3…

helm部署hadoop

&#xff08;作者&#xff1a;陈玓玏&#xff09; 参考helm仓库的文档&#xff1a;https://artifacthub.io/packages/helm/apache-hadoop-helm/hadoop helm helm repo add pfisterer-hadoop https://pfisterer.github.io/apache-hadoop-helm/ helm install hadoop pfistere…

LeetCode230题:二叉搜索树中第K小的元素(python3)

代码思路&#xff1a;二叉搜索树中序遍历为递增序列。 class Solution:def kthSmallest(self, root: Optional[TreeNode], k: int) -> int:def dfs(root):if not root:returndfs(root.left)if self.k 0:returnself.k - 1if self.k 0:self.res root.valdfs(root.right)se…