vector详解

news2024/9/20 20:31:45
迭代器

vector维护的是一个连续线性空间。普通指针可以满足条件作为vector的迭代器。
template <typename T, typename Alloc=alloc>
class vector
{
public:
using value_type = T;
using iterator = value_type*;
};

vector::iterator //int*
vector::iterator //char*

数据存储

迭代器start和finish分别表示vector的起始元素的地址和终止元素的地址。
end_of_storage 表示vector开辟的空间的终止位置。
start - finish 表示的就是我们在连续空间中已经使用的范围。
start - end_of_storage 表示我们的总的空间大小。
finish - end_of_storage 表示我们还未使用过的空间总大小。

在这里插入图片描述

数据填充

无需扩容的情况:并且到finish为止,现有的元素的数量(elem_after)大于等于插入的元素数量 n
首先把绿色区域往后拷贝
把蓝色区域往后拷贝
最后在position位置拷贝进新的元素
在这里插入图片描述
无需扩容的情况:但是到finish为止,现有的元素的数量(elem_after)小于插入的元素数量 n
直接把n 大于elem_after之后的部分拷贝到 finish之后
把position到finish之间原有的元素全部拷贝到finish之后,为图中蓝色区域,
最后把剩余的n的一部分填充至 position到finish之间,使用 fill填充
在这里插入图片描述
需要扩容的情况:剩余备用的元素无法存放进全部的 n 个元素,因此需要重新分配空间,并且销毁原空间。获得容纳这些全部元素至少需要多少空间调用第二级空间配置器的allocate重新分配空间。
首先把start到position的全部元素拷贝到新的空间
最后再把原来 position到 finish之间的元素全部拷贝到 finish之后
最后调整新的 start finish end_storage

在这里插入图片描述

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

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

相关文章

HFP协议分析

HFP 全称为Hands-Free Profile&#xff0c;通俗的说就是蓝牙电话协议&#xff0c;可以通过指定好的AT command来控制通话的接听、挂断、拒接等 看协议的一些约定格式 在HFP协议文档里面有一个约定&#xff0c;这里贴出来&#xff0c;每种不同的标识代表不同的意思&#xff0c…

2023年中国高尔夫用品产值、市场规模及细分产品现状分析[图]

高尔夫用品市场是指个人的高尔夫用品&#xff0c;主要包括高尔夫球具、高尔夫球包、高尔夫用球、高尔夫服装、高尔夫鞋、高尔夫帽子、高尔夫手套及相关配件等方面。 随着高尔夫产业的逐步兴起&#xff0c;高尔夫运动受到了越来越多人们的青睐&#xff0c;与此同时&#xff0c;也…

Loop Copilot:AI驱动,小白也能自己生成音乐?

01 项目介绍 Loop Copilot是一个使用自然语言生成音乐的系统。它不仅允许你使用自然语言来生成你想要的音乐风格、节奏或旋律&#xff0c;还支持通过多轮对话对已生成的音乐进行进一步的编辑和修改。包括对生成的音乐进行编辑修改、添加或删除乐器、加入音效等。 02 工作流程…

0027Java程序设计-房屋出租管理系统

文章目录 摘 要目 录系统设计开发环境 摘 要 随着我国市场经济的快速发展和人们生活水平的不断提高&#xff0c;简单的房屋出租服务已经不能满足人们的需求。如何利用先进的管理手段&#xff0c;提高房屋出租的管理水平&#xff0c;是当今社会所面临的一个重要课题。 本文采用…

vue重修之Vuex【上部】

文章目录 版权声明Vuex 概述Vuex 的主要概念和组件 vuex的使用状态 &#xff08;state&#xff09;Vuex特点 访问vuex中数据$store访问mapState辅助函数访问 开启严格模式及Vuex的单项数据流突变&#xff08;mutations&#xff09;mutations初识带参 mutations辅助函数 mapMuta…

Redis快速上手篇(三)(事务+Idea的连接和使用)

Redis事务 可以一次执行多个命令&#xff0c;本质是一组命令的集合。一个事务中的 所有命令都会序列化&#xff0c;按顺序地串行化执行而不会被其它命令插入&#xff0c;不许加塞。 单独的隔离的操作 官网说明 https://redis.io/docs/interact/transactions/ MULTI、EXEC、…

数据结构,及分类(存储分类、逻辑分类)介绍

一、数据结构&#xff1a; 数据是软件开发的核心。在软件开发过程中基本上就是对数据的新增、删除、修改、查看的操作。 如何合理存储数据&#xff0c;如何有效提升数据操作开发效率&#xff0c;都是软件开发中的重中之重。使用合理的数据结构是非常重要的。 1.1简介&#xff…

【Leetcode】【每日一题】【简单】2520. 统计能整除数字的位数

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/count-the-digits-that-divide-a…

分享53个ASP.NET源码总有一个是你想要的

分享53个ASP.NET源码总有一个是你想要的 链接&#xff1a;https://pan.baidu.com/s/1xvqgPHSty70VGlQHoy9NYw?pwd8888 提取码&#xff1a;8888 项目名称 ASP.Net 4.5 论坛源码&#xff0c;支持多数据库 Asp.Net Core 3.x博客同步应用案例 ASP.NET Core MVC SqlSugerCore…

安防监控项目---概要

文章目录 前言一、项目需求二、环境介绍三、关键点四、主框架分析总结 前言 各位小伙伴&#xff0c;在蛰伏了将近有半年的时间又要和大家分享新的知识了&#xff0c;这次和大家分享的是一个项目&#xff0c;因此呢我准备分项目阶段去和大家分享&#xff0c;希望大家都能够在每…

如何满足TIKTOK直播企业四大网络需求,轻松实现直播无卡顿?

说到企业海外直播&#xff0c;大家脑海里一下就想会想到当下爆火的TIKTOK平台&#xff0c;而随着TIKTOK在全球范围大面积铺开推广&#xff0c;不同国家不同市场的活跃用户数纷纷上涨&#xff0c;让更多的电商企业选择在TIKTOK上进行布局获得商机。 对于已布局TIKTOK直播或者待布…

【Linux】开发工具

目录 Linux编译器-gcc/g使用执行命令&#xff1a;我们的.o和库是如何链接的? make/Makefile依赖关系、依赖方法 Linux编译器-gcc/g使用 gcc只能编译c语言&#xff0c;g可以编译c语言也可以编译g 背景知识&#xff1a; 预处理&#xff08;进行宏替换)编译&#xff08;生成汇编)…

我的Windows10下的WSL的使用经历

微软每年都会举办Build开发者大会&#xff0c;近年来越来越受关注的Linux 子系统Windows Subsystem for Linux&#xff08;WSL&#xff09;已经很完善了&#xff0c;我抱着体验一把的心态&#xff0c;也来使用一下这个功能。 各位新手Linux朋友们&#xff0c;有没有想过怎么在…

ubuntu18.4(后改为20.4)部署chatglm2并进行基于 P-Tuning v2 的微调

下载驱动 NVIDIA显卡驱动官方下载地址 下载好对应驱动并放在某个目录下&#xff0c; 在Linux系统中安装NVIDIA显卡驱动前,建议先卸载Linux系统自带的显卡驱动nouveau。 禁用nouveau 首先&#xff0c;编辑黑名单配置。 vim /etc/modprobe.d/blacklist.conf 在文件的最后添加…

Python实现【亚马逊商品】数据采集

亚马逊作为最大的跨境电商平台之一&#xff0c;其产品一直备受关注&#xff0c;因此采集亚马逊产品功能也是部分卖家所需的&#xff0c;下面我们来了解一下采集亚马逊产品是如何操作的。 l 采集网站 【场景描述】采集亚马逊搜索关键词出来的商品信息。 【入口网址】https://…

MES系统在工业生产中的重要性与功能

MES系统在工业生产中的重要性体现在它的信息化管理能力。传统的生产管理方法主要依靠人工操作和纸质文档记录&#xff0c;效率低下且容易出错。而MES系统利用计算机技术和数据库管理&#xff0c;能够实时记录和监控生产数据&#xff0c;提供准确的生产情况分析报告&#xff0c;…

2023年中国高尔夫服饰市场规模、主要品牌及行业发展方向分析[图]

高尔夫服饰是指高尔夫运动的专用服饰&#xff0c;高尔夫运动作为商务交流的手段和工具&#xff0c;具有较强的商务属性&#xff0c;高尔夫服饰除了具备专业功能属性以外&#xff0c;具备较强的时尚性&#xff0c;适合于商务、日常、休闲等多场景穿戴。高尔夫服饰里的主要类别&a…

快速上手视频下载助手:简单操作,高效下载你心仪的影片

在如今的社交媒体时代&#xff0c;视频已成为人们生活中不可或缺的一部分。微信视频号作为新兴的视频平台&#xff0c;吸引了越来越多的用户。然而&#xff0c;与其他视频平台相比&#xff0c;微信视频号并不支持视频下载功能&#xff0c;给用户带来了不便。但是&#xff0c;不…

React之Jsx如何转换成真实DOM

一、是什么 react通过将组件编写的JSX映射到屏幕&#xff0c;以及组件中的状态发生了变化之后 React会将这些「变化」更新到屏幕上 在前面文章了解中&#xff0c;JSX通过babel最终转化成React.createElement这种形式&#xff0c;例如&#xff1a; <div>< img src&q…