1.vector构造函数

函数原型

vector<int> v   // 默认构造,size为0

vector(const_iterator beg, const_iterator end)   // 将v的[begin, end) 元素拷贝过来

vector(n, elem)     // 构造函数将n个elem拷贝到本身

vector(const vector & v)   // 拷贝构造

2.vector赋值操作

函数原型

vector & operator=(const vector& vec);    // 重载等号

assign(const_iterator beg, const_iterator end)    // 将【beg,end)区间数据拷贝给自己

3.vector容器容量和大小

函数原型

empty()     // 判断容器是否为空

capacity()    // 容器的容量

size()         // 容器元素个数

resize(int num)   // 重新指定容器的长度为num,若容器边长,则以默认值填充位置

                           // 若容器变短,则超过的部分被删除

4.vector数据的插入和删除

函数原型

push_back(e)   // 尾部插入元素

pop_back()    // 删除最后一个元素

insert(const_iterator pos, ele)    // 迭代器指向pos位置插入ele

erase(const_iterator pos)       // 删除迭代器指向的元素

erase(const_iterator start, const_iterator end)  // 删除从start到end的元素

clear()     // 清空容器

#include<iostream>
#include<vector>
using namespace std;
void print_vector(const vector<int> &v)
{for(int i = 0; i < v.size(); i++){cout << v[i];}cout << endl;
}
void test1()
{vector<int> v1;v1.push_back(1);v1.push_back(2);v1.push_back(3);v1.push_back(4);v1.push_back(5);print_vector(v1);v1.pop_back();print_vector(v1);v1.insert((v1.begin()+1), 100);print_vector(v1);v1.erase((v1.begin()+1));print_vector(v1);v1.erase(v1.begin(), (v1.end()-1));print_vector(v1);v1.clear();print_vector(v1);
}
int main()
{test1();return 0;
}

5.vector数据读写

函数原型

operator[]  // 返回索引idx所指的数据(因为vector的迭代器是随机迭代器)

front()       // 返回容器中第一个数据元素

back()       // 返回容器最后一个数据元素

6.vector互换容器

函数原型:

swap(vec)  // 将vec与本身互换

实际用途来收缩内存空间

开始分配的内存空间很大,突然给把容器大部分内容删除了,但是还是会分配那么大的空间

使用v1创建一个匿名对象,实际上是拷贝构造,他只会拷贝size大小的内存。当执行完毕这行代码后,这个匿名对象就被释放掉。

vector<int>(v1).swap(v1)

7.vector预留空间

函数原型: 

reserve(int len)     // 容器预留len个元素长度,预留位置不初始化,元素不可访问

vector在添加元素的时候会动态扩容,它会把原来的空间释放掉,把所有的内容放到新的更大的空间里面。下面的测试代码就扩容了15次。

预留空间后,不会动态扩容,提高了运行效率。

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

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

相关文章

深度学习-算子

概念&#xff1a;标识数字图像中亮度变化明显的点处理步骤1.滤波处理算子通常被称为滤波器。2.增强确定各点sobel算子概念&#xff1a;主要用于获得数字图像的一阶梯度&#xff0c;本质是梯度运算。Scharr算子Scharr算子 是一种用于边缘检测的梯度算子&#xff0c;它是Sobel算子…

全国产8通道250M AD FMC子卡

4片8路ADS42LB69标准FMC采集子卡自研成品ADC采集子卡和定制化设计ADC采集子卡&#xff0c;实测采集指标均与手册标称值一致。该板卡有全国产化和进口两个版本&#xff0c;基于FMC标准设计&#xff0c;实现8路16bit/250MSPS ADC采集功能&#xff0c;遵循 VITA 57 标准&#xff0…

【牛客网C语言刷题合集】(三)

&#x1f31f;菜鸟主页&#xff1a;晨非辰的主页 &#x1f440;学习专栏&#xff1a;《C语言刷题集》 &#x1f4aa;学习阶段&#xff1a;C语言方向初学者 ⏳名言欣赏&#xff1a;"任何足够先进的bug都与魔法无异。" 前言&#xff1a;刷题博客主要记录在学习编程语言…

Python之--字典

定义字典&#xff08;dict&#xff09;是一种无序、可变且可哈希的数据结构&#xff0c;字典是根据一个信息来查找另一个信息&#xff0c;它表示索引用的键和对应的值构成的成对关系。特点&#xff08;1&#xff09;字典与列表一样&#xff0c;是Python里面的可变数据类型。&am…

【ARM】ARM微架构

1、 文档目标对 ARM 微架构的概念有初步的了解。2、 问题场景在和客户沟通和新同事交流时对于 ARM 架构和微架构二者有什么区别和联系&#xff0c;做一个简单的介绍。3、软硬件环境1、软件版本&#xff1a;不涉及2 、电脑环境&#xff1a;不涉及4、关于 ARM 架构和微架构架构不…

c++注意点(11)----设计模式(工厂方法)

创建型模式工厂方法模式是一种创建型设计模式&#xff0c; 其在父类中提供一个创建对象的方法&#xff0c; 允许子类决定实例化对象的类型。为什么需要工厂方法模式&#xff1f;看一个 “没有工厂模式” 的痛点场景&#xff1a;假设你在开发一个游戏&#xff0c;最初只有 “战士…

基于Kubernetes的微服务CI/CD:Jenkins Pipeline全流程实践

一、部署gitlab GitLab 是一个集代码托管、CI/CD、项目管理、安全扫描于一体的 DevOps 平台&#xff0c;提供从代码编写到部署的全生命周期管理。它支持 Git 版本控制&#xff0c;内置自动化流水线&#xff0c;可与 Kubernetes 集成&#xff0c;实现云原生应用的持续交付。同时…

Spring Bean初始化及@PostConstruc执行顺序

目录 1. Bean初始化执行顺序 2. 成员变量初始化顺序 2.1 普通Java类&#xff08;非Spring环境&#xff09; (1) 默认初始化(即初始分配内存) (2) 显式初始化 (3) 构造器初始化 (4)完整顺序 2.2 Spring管理的Bean&#xff08;依赖注入场景&#xff09; (1) 普通成员变量…

webRTC合并本地源码修改和官方更新

一、总体思路&#xff1a;基于 Git 分支管理改动origin/main 是官方 WebRTC 主干&#xff08;来自 webrtc.googlesource.com&#xff09;。my/webrtc 是你自己开发和修改的分支。每次 Google 更新 WebRTC&#xff0c;你从 origin/main 拉新代码&#xff0c;再把 my/webrtc 分支…

c++注意点(12)----设计模式(生成器)

创建型模式生成器模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它专注于将复杂对象的构建过程与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。就像是做饭&#xff0c;你可以自己慢慢做&#xff0c;各个步骤自己选择。而使用生成…

[特殊字符] VLA 如何“绕过”手眼标定?—— 当机器人学会了“看一眼就动手”

&#x1f52e; VLA 如何“绕过”手眼标定&#xff1f;—— 当机器人学会了“看一眼就动手” 作者&#xff1a;石去皿 发布时间&#xff1a;2025年7月 在传统机器人系统中&#xff0c;“手眼标定”是每一个工程师都绕不开的课题。 你必须精确测量相机和机械臂之间的空间变换关系…

《Maven 核心基础笔记(第一天)》

1.说明maven软件依赖管理和项目构建功能maven是为Java项目工作的 功能体现&#xff1a;依赖管理&#xff0c;项目构建 依赖管理&#xff1a;我们只需要写配置文件(pom.xml)&#xff0c;maven就会帮我们下载依赖&#xff0c;并且也会下载依赖的依赖。 项目构建&#xff1a;项目源…

Yolo底层原理学习(V1~V3)(第一篇)

一&#xff0c;卷积后的特征图大小计算众所周知&#xff0c;提到深度学习&#xff0c;必不可少的会提及卷积&#xff0c;那么如何计算卷积之后的图片大小呢&#xff1f;下图呈现&#xff1a;如图&#xff0c; 我们令FH&#xff0c;FW为原图像的长度FH*FW。P为padding的长度&…

前端开发项目性能瓶颈分析

1. 使用 rollup-plugin-visualizer 分析构建 借助 rollup-plugin-visualizer 插件&#xff0c;可以分析通过 rollup 构建出的产物内容&#xff0c;并生成可视化图表&#xff0c;帮助你分析打包后的文件大小以及各个模块的占用情况。 1.1. 安装插件 你需要在你的项目中安装 r…

ExoData.h - OpenExo

ExoData.h文件定位源代码1. 头文件依赖2. 核心类声明3. 主要成员函数关节遍历工具关节与配置相关数据/状态操作控制参数/校准4. 主要成员变量总结文件定位 位置&#xff1a;src/ExoData.h 作用&#xff1a;定义 ExoData 类&#xff0c;作为 Exo 系统全局数据的核心容器。它将设…

缓存HDC内容用于后续Direct2D绘制.

思路&#xff1a;把HDC里的内容保存到Direct2D格式的位图里&#xff0c;后续直接调用 renderTarget->DrawBitmap即可。本例中&#xff0c;位图将保存为类的字段。本例中 COM 接口指针皆使用 com_ptr&#xff0c;这是 WinRT 的 COM 智能指针类&#xff0c;com_ptr<I>::…

“抓了个寂寞”:一次实时信息采集的意外和修复

1. 那天下午&#xff0c;舆情系统“迟到”了 那天下午&#xff0c;公司运营那边突然在群里喊&#xff1a;“XX事件都快上热搜榜前十了&#xff0c;咱们系统咋没反应&#xff1f;” 我愣了几秒&#xff0c;立马翻后台日志、爬虫执行记录&#xff0c;结果一查&#xff0c;还真有点…

数据结构之迪杰斯特拉算法

前言&#xff1a;前面两篇文章介绍了生成图的最小生成树的算法&#xff0c;接下来两篇文章会介绍图的最短路径的算法&#xff0c;迪杰斯特拉算法和弗洛伊德算法。迪杰斯特拉算法是用来计算一个点到其他所有点的最短路径&#xff0c;这个点称之为源点。 一、实现流程 回忆一下…

技术文档 | OpenAI 的 Kafka 演进之路与 Pulsar 迁移潜力

导读ChatGPT 用户量指数级暴涨&#xff0c;OpenAI 的 Kafka 集群在一年内增长 20 倍至 30 个集群[1]&#xff0c;其 Kafka 架构面临日均千亿级消息&#xff08;峰值 QPS 800万/秒&#xff09; 的压力。这揭示了一个关键事实&#xff1a;OpenAI 的成功不只依赖模型&#xff0c;更…

【bug】 jetson上opencv无法录制h264本地视频

在Jetson Orin NX上无法使用opencv直接录制h264/h265视频流&#xff08;h264格式的视频流才能在浏览器播放&#xff09; 解决&#xff1a; 软件编码&#xff1a;需要源码编译opencv 1.环境准备 pip uninstall opencv-python sudo apt install build-essential cmake git python…