简述Vector

C++ 向量 vector 用法简述 C++ 模板容器向量 vector,本问介绍 vector 的使用。 阅读详情

前言

本文仅就Vector类做总结性的概述,不对源码解析。对源码感兴趣的朋友,本文也会分享认为写的不错的博客地址。

一、概述

Vector由数组作为底层结构实现的动态数组数据结构,其是线程安全的,常为称为线程安全的AarrayList。

二、继承关系

Vector继承AbstractList抽象类,子类为Stack,示意图如下:
在这里插入图片描述

三、特点

3.1 Vector特点

  • 动态扩容,底层由一个可以增长的数组组成,扩容时默认为扩大两倍
  • 线程安全,每个方法都有同步锁synchronized

3.2 与ArrayList的区别与联系

(1)共同点

  • 底层实现均为数组
  • 都支持随机访问(都继承自AbstracList)
  • 默认容量都是10
  • 都能动态扩容
    (2)区别
  • Vector是线程安全的,ArrayList不是
  • Vector默认扩容为2倍,ArrayList是1.5倍
  • Vector 比 ArrayList 多一种迭代器 Enumeration
    (3)应用
    当没有线程安全要求时,使用ArrayList,当需要线程安全时,使用ConcurrentArrayList,Vector已经被弃用。

参考资料:
https://shixin.blog.youkuaiyun.com/article/details/52900893
(有源码解析)

利用Vector类(继承)编写一个先进先出的队列类Queue java实现 java实现的利用Vector类(继承)编写一个先进先出的队列类Queue,它有两个方法:入队inqueue和出队outqueue。(在主方法中使用该队列: “111”、“222”入队,出队一元素,“333”入队,最后出队所有元素。 立即下载

相关推荐

map,list,set,stack,queue,vector等区别和特点1

更为精炼的总结:Collection 是对象集合, Collection 有两个子接口 List 和 SetList 可以通过下标 (1,2..) 来取得值,值

c++从入门到精通——继承的引出

继承的引出 面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。 当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。 继承代表了 is a 关系。例如,哺乳动物是动物,狗是哺乳动物,因此,狗是动物,等等。 普通写法 class News { public: void header() { c

mirana的专栏 326

FPGA 核脉冲梯形成型 Verilog 实现:从 MATLAB 到 50MHz 采样率部署

本文详细解析了FPGA实现核脉冲梯形成型的完整流程,从MATLAB仿真到50MHz采样率的Verilog硬件部署。重点探讨了梯形成型算法对负指数信号的优化处理,包括定点数量化、流水线架构设计及资源优化技巧,为核辐射探测与高能物理实验提供高效解决方案。

weixin_30920513的博客 387

vector深度剖析

这样对于vector来说,就会出现一个问题,我在初始定义vector的时候该给其申请多少内存空间?如果申请的很小,那么我来了新的数据改存放在哪里?如果申请的很大,我用不完,那岂不是很浪费内存空间?

雪雪 1506

TSmaster CANFD配置避坑指南:为什么你的PCAN盒不支持最新版本?

本文针对TSmaster配置PCAN硬件进行CANFD通信时的常见问题,提供了详细的避坑指南。重点解析了CANFD配置中TSEG1等关键参数的理解误区,并深入探讨了TSmaster新版本与PCAN硬件驱动之间的兼容性变化,帮助工程师快速定位并解决连接失败或无法发送CANFD报文等问题。

alpha的博客 538

VSCode终端打不开?3分钟搞定Windows下Terminal配置(附最新JSON设置方法)

本文针对Windows系统下VSCode终端无法启动的常见问题,提供了详细的诊断与解决方案。核心在于更新已弃用的旧配置,采用最新的JSON设置方法,通过定义`terminal.integrated.profiles.windows`和指定`terminal.integrated.defaultProfile.windows`,快速修复并优化终端配置,实现三分钟内恢复正常使用。

flower的专栏 739

详解STL——vector容器

文章目录vector简介vector的常用构造函数演示1演示2演示3vector的迭代器图示 vector简介 vector是一个灵活的数组的序列容器。和一般数组一样,vector对元素使用连续的存储位置,这一位这它也可以使用指向其元素的常规指针上的偏移量来访问它们的元素,并且与一般数组一样高效。但是和一般数组不同的是,vector的大小能够动态变化,容器会自动处理它们的存储。 与其他动态序列容器(deques、list和forward_list)相比,vector可以非常高效地访问其中的元素,并比对高效

weixin_45137562的博客 1385

2025华为OD 面试手撕代码真题【字符串至多删除一个字符,是否能构成回文串】

2025华为OD 面试手撕代码真题【字符串至多删除一个字符,是否能构成回文串】

MISAYAONE的博客 1701

c++ vector容器使用方法

c++使用vector需要输入头文件 #include 1 vector初始化 (1) 一维数组初始化 vector<类型>标识符 vector<类型>标识符(最大容量) vector<类型>标识符(最大容量,初始所有值) vector<int>a; //定义一个int类型的vector容器a (1)vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给

weixin_45798469的博客 776

YOLOv8改进策略【Conv和Transformer】| CVPR-2023 BiFormer 稀疏自注意力,减少内存占用

本文记录的是利用双级路由注意力机制优化的目标检测网络模型。传统的复杂度高,随着输入空间分辨率增加,计算量呈平方增长,导致严重的可扩展性问题。而本文所使用的在获取全局信息的同时,通过区域到区域路由和令牌到令牌注意力的合理设计,减少了不必要的计算量。BiFormer: Vision Transformer with Bi-Level Routing Attention采用四阶段金字塔结构,与一些先进的视觉Transformer类似。在每个阶段,首先使用重叠的补丁嵌入(在第一阶段)或补丁合并模块(在第二到第四阶段

Limiiiing的博客 611

044、Edge Impulse的音频分类实战

上周调试一块STM32WBA52开发板,板载PDM麦克风死活采不到有效数据。示波器怼上去,时钟线波形漂亮得像教科书,数据线却像心电图——全是毛刺。折腾半天发现是电源纹波干扰,给麦克风单独加了个LC滤波,世界清净了。这种坑,做音频分类的嵌入式工程师迟早要踩一遍。

2401_88858637的博客 52

STL-vector简述

一、构造函数初始化 成员函数 作用 vector(); 无参构造函数,将容器初始化成空的 vector(int n) 将容器初始化成有n个元素 vector(int n,const T &amp;val) 假定元素类型是T,将容器初始化成有n个元素,每个元素的值是val vector(iterator first,iterator last) 将容器...

天空的味道 214

解锁 Bootloader 不再难!HyperOS澎湃系统小米与红米手机通用

必要时,可以在工具右上角安装驱动模块,手动安装驱动。解决方法:确保手机升级到最新稳定版,登录同一个小米账号,并在。新机型解锁时需要等待一段时间,通常为 7 天。如果账号安全评分较低,解锁等待时间会更长。如果解锁失败提示权限不足,说明账号存在安全问题。出现这个错误时,通常是因为网络不稳定。如果解锁次数已满,需要等到下个月。解锁后,手机会重启,首次开机会稍微慢一些,等耐心等待即可。按钮,开始解锁过程,注意:解锁会清除手机内所有数据。7次,开启开发者选项。,右键解压到指定文件夹。,使用小米账号登录。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 7205

简述C++Vector容器

编写原因:有时候,默认的可能无法满足特定的应用需求。比如,需要在特定的硬件平台上实现更高效的内存管理,或者需要满足一些特殊的内存分配和回收规则等情况,就需要编写自定义分配器。示例:以下是一个简单的自定义分配器示例,用于从一个预定义的内存池(这里假设是一个数组形式的内存池)中分配和回收内存,而不是使用默认的和方式。// 假设的内存池,这里用一个字符数组简单表示// 自定义分配器类public:// 分配内存函数// 回收内存函数。

ikkkkkkkl的博客 1218

C++ int转四字节数组

字节转换

我不是码农的博客~~~ 972

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C++——vector和list简述

vector vector概述     vector是STL中序列式容器的一种,可以理解为“可变长的数组”。与array的区别:array是静态空间,大小一旦固定就不能改变,vector是动态空间,随着元素的加入,他会有自己的机制来扩充空间以填充元素。vector的迭代器是random access iterator类型。 vector小例子 #include &lt;vector&gt...

haha与长颈鹿的博客 459

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

简述 C++ vector 的用法

动态数组: 主要有 vector的初始化、插入、访问、大小和容量 和deque的插入和删除 #include<vector> using namespace std; int main(){ // 一 初始化 // 初始指定长度 为10 vector<int> a (10); // 初始为 10 个 5 vector<int> b ( 10, 5); // 复制 vector<int> c (b); // 指定范围的 复制

si_yu_ge的博客 149

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Vector与Stack简述

  Vector: 线程安全,默认容量为10,容量增长量默认为0,每次进行扩容是旧的容量乘以2。支持null的添加。基于数组实现。   Stack: Stack继承Vector的栈结构。...

Jing 855

详解Vector,简述与ArrayList,LinkedList区别

总结: 查询速度上看:Vector ≈ ArrayList > LinkedList 增删改速度上看:Vector < ArrayList < LinkedList 查询分析: LinkedList底层是数组+双向链表结构,里面每个元素都记录了前后项相关信息,查询时需要按索引向前或向后遍历,耗费时间长。 ArrayList是数组结构,Vector也是数组结构,查询时只需要根据数组下标即可获取对应元素,查询速度差不多,但Vector实现了线程同步,所以消耗资源比ArrayList更多。 增删

qq_45651446的博客 289

C++中vector容器简述

转自:http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。 1 基本操作 (1)头文件#include. (2)创建vector对象,vector vec; (3)尾部插入数字:vec.push_back(a); (4)使

菜鸟博客 537

Java 的Vector, ArrayList, LinkedList 区别简述

三个对象的应用场景 用于参照 插入/删除操作 多线程访问(同期处理) Vector ○ × ○ ArrayList ○ × × LinkedList × ○ × Vector Java1.0 时代 ArrayList LinkedList Java2.0时代 先说一下由来: Vector 是最早的List

人在天涯,不倦求索。。 883

简述ArrayList、Vector、LinkedList三者的特点

ArrayList:               底层数组结构;线程不同步,效率高;元素查找快、增删慢;        Vector:               底层数组结构;线程同步,安全;元素查找快、增删慢;        LinkedList:               底层链表结构,线程不同步,效率高;元素增删快、查找慢

luowei0903的博客 671

【面试题】【C++】简述 vector 的实现原理

它以两个迭代器start和finish分别指向配置得来的连续空间中目前已经被使用的空间。为了降低空间配置时候的速度,vector实际配置的大小可能比客户端需求量更大一些,以备将来可能的扩充。如果vector在增加一个元素的时候,超过了自身最大的容量。扩充空间需要经过的步骤:重新配置空间,元素移动,释放旧内存空间。一旦vector空间重新配置,则指向原来vector的所有迭代器都失效了,因为vector的地址改变了。vector 是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新的元素。

weixin_43232163的博客 316

C++知识点4——vector与string简述

string 使用string类必须包含头文件#include<string> string对象的初始化 1.默认初始化 string s1; 2.拷贝初始化 string s4=s1; string s5="qwer"; 3.直接初始化 string s3("qwer"); string s5="qwer"; string s6(10,'c'); 上述代码的运行结果 void stringinit() { string s1; str...

Master Cui的博客 3227

STL-vector容器(简述)

vector 00.vector简述 vector和C++内建的array是类似的,不同的时array时静态的,vector则是动态的,可以根据实际进行自动的配置,而array则是不可在改变的。 vector的技术实现主要是其当空间不足时的情况,即扩容和拷贝数据的策略。 vector的结构 template&amp;lt;class T , class Alloc...

SkinWhite的博客 380

简述stl 中set,vector,map的查找效率以及如何实现的?

简述stl 中set,vector,map的查找效率以及如何实现的?

IT3689的博客 1892
上一篇: 简析AbstractList
下一篇: java中的栈
Archie敲键盘
博客等级 码龄7年 9粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值