STL - vector用法总结

浅谈STL之Vector STL是Standard Template Library(标准模版库)的缩写,在该库中,包含着大量的预设容器、算法和迭代器,是一个可以简化编程难度和降低时间的好东西,有以下的优点。1. 高性能:STL容器和算法经过高度优化,提供了出色的性能,适用于各种应用场景。2.可复用性:STL代码具有高度的可复用性,可以在不同项目中重复使用,从而提高开发效率。3. 可移植性:STL是C++的标准组成部分,因此在不同的C++编译器和平台上都可以使用。 阅读详情

(我的STL相关的博客目录:https://blog.youkuaiyun.com/Kprogram/article/details/90408011)

(vector-c++官网:http://www.cplusplus.com/reference/vector/)

vector "向量“相当于长度可以自由变换的数组,而且我们不需要关心它是如何增减元素的,直接使用即可。

如果不考虑速度,可以用vector完全替代数组

0 - 头文件:vector  命名空间:std

#include <vector>
using namespace std;

1 - 构建一个vector:vector<typename> name 

    typename指的是队列内数据类型,可以是 int, double, 可以是struct, class, 也可以是 vector, string等等。总之是一个数据对象都行。

    name 是你构建的vector的名字,符合变量命名法则就行。

    例:构建一个 int 类型的vector, 名字叫做 V。

vector<int> V;

2 - 成员函数 ( 假设你创建的vector对象名字叫 V )

    (粉红色的函数为常用函数!大部分情况下这些函数就够用了)

容量和尺寸:

    size():返回容量大小(元素数量)

        V.maxsize():返回最大容量

    empy():如果vector为空,返回True, 反之则返回 False。

    resize(n):重新设置对象的长度,如果n小于size,则保留前n个数据。反之,随便增加元素到n,或者增加指定元素:V.resize(n, data)

    capacity():返回vector的容量大小,容量不同于size,如果元素的数量超过了容量vector会重新分配内存,以存储更多的元素,且会造造成一些影响(具体点击这里)

    reserve(n):重置vector的容量,如果n小于容量,则不会造成影响。

    shrink_to_fit():缩小容量至其等于size。

遍历vector的一般方法举列:
for(int i = 0; i < V.size(); i++) {
    int I = V[i];
    ...//对I的操作等

元素:

    V[n]:跟数组一个道理。

    back():返回最后一个元素的引用(意味着可以用V.back() = data修改末尾元素值)

    front():返回第一个元素的引用

    at(n):返回第n个元素的引用

    data():返回元素的指针

修改器:

    push_back(type):添加一个元素type到向量的末尾

    pop_back():删除末尾元素

    insert(type):插入元素type于n处

    erase(V.begin() + n):删除第n个元素(假设你创建的vector名字为V)

        erase(a, b):删除[a, b]内所有元素

    V.swap(V1):交换 V 和 V1 两个vector的内容

    clear():清除所有元素

    emplace() 和 emplace_back():和push非常相似,但是可以取代push,并做出了优化。 >用法和与push的区别点这里<

    (vector还有关于迭代的函数,这里不进行介绍)

C++笔记之使用操作符重载加号实现两个vector的相加并封装成函数模板 阅读详情

相关推荐

计算vector中所有元素之和

计算vector中所有元素之和/* 编写程序,处理一个vector ,其元素都表示整型值/浮点型,计算vector中所有元素之和 */

白手起家学习数据科学 ——线性代数之“Vectors篇”(二)

线性代数是处理**向量空间**的数学分支,在这里我会详细讲解在本章节中使用到的线性代数知识,它会始终贯穿到章节中。

shaomingliang499的博客 1707

关于c++ 定义两个vector数组对象实现以下操作:

一、定义两个vector对象,分 别存放int、float数组元素,实现以下操作: 1.输入数组元素的值 2.修改数组中元素的值 3.向数组中间插入、删除元素 4.将数组首部和尾部元素删除 5.向数组首部和尾部插入元素 每次修改数组均输出当前数组元素。

线性代数-向量空间

线性代数学习笔记向量空间 向量空间 向量空间的严格定义: 设 VVV 为一向量组,如果 VVV 非空,且 VVV 对于向量的加法以及数乘两种运算封闭,那么就称 VVV 为 向量空间。 所谓封闭,是指在 VVV 中向量进行数乘和加减,其结果依然在 VVV 中。具体的说,就是: 若 a∈V,b∈V,a \in V, b \in V,a∈V,b∈V, 则 a+b∈Va + b \in Va+b∈V 若 a∈V,k∈R,a \in V, k \in \mathbb{R},a∈V,k∈R, 则 ka∈Vka \i

levin blog 5758

C++实现 vector 的四则运算

本文给大家介绍的是在C++中实现高效的vector四则运算的方法的相关资料,需要的朋友可以参考下

python cartopy绘制扇形区域图/cartopy绘制北极部分区域

实际上,这个问题原因还是由于投影转换的问题,在set_extend时,绘制的上下边界仍然是方形、未被正确投影的边界,与我们的set_boundary存在冲突,最根本的原因还是在于cartopy对于投影计算的一些缺陷。另外我们需要指出的是:**该方法不适用于极地投影,即NorthPolarStereo,由于NorthPolarStereo本身投影特性只需一个参数,本身并不适合。我们绘制极地投影时,同样也是使用set_boundary绘制圆形边界,那么当我们想要绘制扇形时,可以通过。请根据喜好自行选择,

weixin_43750300的博客 3212

两个vector对应元素相加_2.3 vector

导图vectorvector是什么东东呢?就是它字面意思,向量。怎么理解呢?高中数学中我们学了能表示二维平面的中某一点的向量<x,y>,以及三维空间中表示某一点的向量<x,y,z>。到了大学,我们更加了解到<>中有多少个数字就能表示多少维度空间中的一点。c++借鉴并扩展了这个表示方法,用它来表示同种类型元素的聚集(我之所以不说是“集合”,是因为集合是元素不可重复...

weixin_42510608的博客 3507

python采集keep运动数据

我国2009年确立“全民健身日”;2012年,“广泛开展全民健身运动”写入十八大报告;到2014年上升为国家战略,全民健身的分量越来越重。推动全民健身和全民健康深度融合,通过全民健身实现全民健康。 全民健身运动在我国越来越普及,每天清晨和傍晚时分,城市的广场上、公园里,到处是运动健身的人们,跑步、打球、跳舞、游泳、打太极拳等运动项目十分丰富,人们在运动中获得越来越多的幸福感。 随之诞生出了很多运动app,例如keep,咪咕,微信等,大家可以通过app随时记录自己的运动数据,特别是对于很多的减肥人群来说,通过

Z_suger7的博客 5657

STL vector的内部实现原理及基本用法

本文基于STL vector源代码,但是不考虑分配器allocator,迭代器iterator,异常处理try/catch等内容,同时对_Ucopy()、 _Umove()、 _Ufill()函数也不会过度分析。一、vector的定义template<class _Ty, class _Ax> class vector : public _Vector_val<_Ty

qinm的专栏 4万+

非root用户如何在CentOS7集群上编译安装OpenFOAM6

本文详细介绍了在CentOS7集群上以非root用户身份编译安装OpenFOAM6的完整流程。通过环境准备、依赖包离线获取、源码编译安装等步骤,解决了集群环境下权限和依赖问题,特别针对OpenMPI和Boost库提供了优化配置建议,帮助用户高效完成安装并优化性能。

weixin_28826961的博客 681

Vue项目实战:5分钟搞定高德地图离线部署(附避坑指南)

本文详细介绍了在Vue项目中实现高德地图离线部署的完整方案。针对内网或网络隔离环境,通过获取并改造JSAPI文件、下载组织地图瓦片数据,并集成vue-amap组件,实现地图功能的本地化运行。文中提供了核心代码、避坑指南及性能优化建议,帮助开发者快速构建稳定可靠的离线地图应用。

data3的博客 935

STL之vector容器用法

STL之vector容器用法 vector实际上是一个动态数组 它预先指向一段连续的已分配好的内存空间 1.0 头文件 #include <vector> 1.1 创建vector vector<int> A; //声明一个int型vector vector<int> A(10); //初始大小为10 vector<int> A(10,...

luhao19980909的博客 337

Android 13/14/15 默认授权应用权限的实现方法

Android版本修改方式实现原理13/14修改Permission.java将所有权限标记为Normal权限15修改DeviceIdleController.java + DefaultPermissionGrantPolicy.java监听应用安装并主动授权。

m0_60898338的博客 2909

STL之vector用法总结

vector常见用法总结 1.vector的定义 添加头文件 include <vector> 定义 vector<typename> name; 如:定义一个名为a的整形vector,用来存放整形的数 vector<int> a; vector<char> b; vector<vector<int> > c; 定义vector类型的数组,相当于两维都可以变长的二维数组 vector<int> vi[100]; 访问 (

weixin_43915303的博客 319

配置 SAP Fiori 服务的 ICF 节点:从 SICF 激活到访问链路打通的完整实践

在SAP Fiori项目实施中,ICF节点配置是关键前置条件却常被忽视。ICF(Internet Communication Framework)作为HTTP请求入口,需要通过SICF事务码激活相关服务节点,否则即使应用开发完善,用户仍可能遇到页面无法访问等问题。典型问题表现为:磁贴可点击但页面空白、资源加载失败等。激活路径主要涉及三组节点:bsp分支下的管理入口、ui5_ui5分支下的应用资源,以及public/bc下的公共资源。项目实施中需特别注意同名服务在不同分支下的差异化作用,确保完整链路通畅。IC

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 264

基于 SoC 的卷积神经网络车牌识别系统设计(1)引言

通过 CPU 软核 IP 在纯 FPGA 平台上构建一个 AI SoC 卷积神经网络车牌识别系统,其中,缩放、填充层、卷积层、ReLU、池化层、全连接层 IP 都是 Verilog 设计的,同时集成了各种高性能的 IP。这是最具挑战性的 AI SoC 芯片设计项目,集成了 Python 卷积神经网络代码、Verilog 卷积神经网络硬件设计、ARM SoC 设计、ARM 与 FPGA 的交叉编译流程等等。这不仅是科研学习、集创竞赛、秋招求职的一个极具优势的精彩项目,也是目前最火热的芯片行业之中的一个...

新芯设计的博客 3779

[STL]vector常见用法详解

C++的STL容器——vector基本用法解析

AryCra_07的博客 1810

智能车图像处理4-入门级分析3 ---十字路口补线

PS :入门级文章适合新手,如果已经有基础可以去看进阶篇文章。

taiyuezyh的博客 1万+

STL——vector

STL-vector

kaneki_11的博客 1148

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

[C++ STL] vector 详解

vector是STL中的一个容器,实现了动态数组的功能。它可以存储任意类型的元素,并提供了一系列的操作函数,如插入、删除、访问等。动态大小:vector的大小可以根据需要进行动态调整,可以随时增加或减少元素的数量。连续存储:vector的元素在内存中是连续存储的,可以通过下标快速访问元素。头部插入删除效率较低:由于在头部插入或删除元素时需要进行大块内存的复制或移动,导致效率较低。随机访问效率高:由于元素的连续存储,可以通过下标直接访问任意位置的元素。

石墨博客 1687

IDEA的使用指南

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

手撕STL——vector

C++,STL,vector,手撕

aaaaa_shen的博客 2094

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

vector 二维数组_C++ STL中 Vector的基本用法

C++ STL中 Vector的基本用法一维vector创建一维vector:vector<int> nums;//不指定长度vector<int> nums(n); // 指定长度为n 添加元素nums.push_back(1);//直接从数组末端添加nums[i] = 1;//直接赋值给第i个位置删除元素nums.resize(nums.size-i); //直接将数组...

weixin_39623350的博客 4611

STL之vector常见用法详解

来自胡凡《算法笔记》

lilian的博客 2441

STL vector容器

STL中的容器: vector容器的常用接口及用法: vector:STL 中最常用的容器,和数组结构非常类似,也被称作单端数组; vector 容器和普通数组的区别:它们的不同之处在于,数组是静态空间(一旦给定了初始长度,无法修改),而 vector 容器可以动态扩展; 动态扩展:并不是在原有空间的后面续接新空间,而是找到在内存中一块更大的空间,先将原数据拷贝到新空间,后释放原空间; 图片转自于黑马程序员,是在学习的过程中截图下来的 各种函数接口具体如何使用,下面的代码块中会有详细的使用方法 vec

weixin_51196603的博客 514

【STL详解】vector

【STL详解】vector

这是简介 3280
上一篇: STL - queue用法总结
下一篇: STL - emplace 与 push 的区别
Korpse
博客等级 码龄9年 115粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值