首页 > 其他分享 >向量vector

向量vector

时间:2023-10-15 11:12:32浏览次数:33  
标签:返回 begin 迭代 元素 vector vec 向量

向量vector

1.几种向量的定义方式

(1) vector<int> vec 创建一个类型为int的空vector

(2) vector<int> vec(vec2) 复制创建一个和vec2数据完全相同的vec

(3) vector<int> vec = vec2;

(4) vector<int> vec(n,val) 创建一个包含有n个数据,值为val的元素

(5) vector<int> vec(n) 创建一个含有n个元素,值为默认初始值的元素

(6) vector<int> vec{1,2,3,4,5,6} 用1,2.....去初始化vec

(7) vector<vector<int>> 二维数组初始化

2.常用基础操作

v.empty()	如果 v 为空则返回 true,否则返回 false

v.size()返回 v 中元素的个数

v.push_back(val)	向 vector 的尾端添加值为 val 的元素。

注意:vector 不支持 push_front 操作。

v.pop_back(val)	

删除尾元素,返回void。vector同样 不支持 pop_front 操作。若想在同时弹出元素的值,就必须在执行弹出之前保存它(可以使用 v.back())。

v[n]	返回 v 中第 n 个位置上元素的引用,不能用下标操作添加元素

v.back()	返回 v 中最后一个元素的引用

v.front()	返回 v 中第一个元素的引用

v1 = v2	用 v2 中的元素替换 v1 中的元素

v1 = {a, b, c...}	用元素 {a, b, c...} 替换 v1 中的元素

v1 == v2	当且仅当拥有相同数量且相同位置上值相同的元素时,v1 与 v2 相等

v1 != v2	自行体会

<, <=, >, >=	以字典序进行比较

2.插入操作

v.insert(p,n,val):在迭代器 p 之前插入 n 个值为 val 的元素,返回新添加的第一个元素的迭代器。

img

4.删除操作

v.erase(p) 删除迭代器p所指的元素,返回指向被删除元素之后元素的迭代器。

v.erase(b, e) 删除迭代器 b, e 之间的元素,返回指向最后一个被删除元素之后元素的迭代器。

img

5.排序sort

(1)sort(s.begin(),s.end());

//默认从小到大

(2)sort(s.begin(),s.end(),greater<int>());

//从大到小

(3)reverse(s.begin(),s.end());

//从大到小

6.消除相邻的重复元素unique()

unique(a.begin(), a.end());

7.找最值

最大值auto it = max_element(v.begin, v,end()),返回最大值的迭代器

最小值auto it = min_element(v.begin, v,end()),返回最小值的迭代器

相对位置大小auto b = distance(x, y),x、y 是迭代器类型,返回 x、y 之间的距离,可以用来获取最大/小值的索引

vector<int> a({0,1,-2,3});

auto b = distance(a.begin(), min_element(a.begin(), a.end()));

cout << a[b] << endl;

return 0;

8.改变vector大小

改变 vector 的大小可以使用 v.resize(n, t)函数,调整 v的大小为 n个元素,任何新添加的元素都初始化为值 t

如果不确定元素的确定个数,那么 vector 就是最好的选择。

标签:返回,begin,迭代,元素,vector,vec,向量
From: https://www.cnblogs.com/csclixuan/p/17765392.html

相关文章

  • 向量化操作简介和Pandas、Numpy示例
    Pandas是一种流行的用于数据操作的Python库,它提供了一种称为“向量化”的强大技术可以有效地将操作应用于整个列或数据系列,从而消除了显式循环的需要。在本文中,我们将探讨什么是向量化,以及它如何简化数据分析任务。 https://avoid.overfit.cn/post/ae2f68c9b2a548b59629755a05......
  • Vector多行日志读取,解析
    官方记录:https://github.com/vectordotdev/vector/issues/2137目前只支持file、docker[sources.multiline_logs]type="file"include=["/opt/multiline.log"] [sources.multiline_logs.multiline] start_pattern='^<\d+>' mode=......
  • 可观测性数据收集集大成者 Vector 介绍
    如果企业提供IT在线服务,那么可观测性能力是必不可少的。“可观测性”这个词近来也越发火爆,不懂“可观测性”都不好意思出门了。但是可观测性能力的构建却着实不易,每个企业都会用到一堆技术栈来组装建设。比如数据收集,可能来自某个exporter,可能来自telegraf,可能来自OTEL,可......
  • 文本向量化
    文本向量化文本向量化是将文本表示成一系列能够表达文本语义的向量。词语是表达文本处理的最基本单元,因此当前阶段对文本向量化大部分的研究都是通过对词向量化实现的。与此同时,也有相当一部分研究者将文章或者句子作文文本处理的基本单元,与之对应的是doc2vec和str2vec技术。1.词向......
  • 顺序容器(vector、deque、list、forward_list、array 、string)
    一、顺序容器概述   顺序容器提供了控制元素存储和访问顺序的能力,顺序与元素加入容器时的位置相对应。1、常见的顺序容器类型:vector:可变大小的数组。支持快速随机访问,在尾部之外的位置插入或者删除元素可能很慢。deque:双端队列。支持快速随机访问。在头尾位置插入/删除速度很......
  • 顺序容器(vector、deque、list、forward_list、array 、string)
    一、顺序容器概述   顺序容器提供了控制元素存储和访问顺序的能力,顺序与元素加入容器时的位置相对应。1、常见的顺序容器类型:vector:可变大小的数组。支持快速随机访问,在尾部之外的位置插入或者删除元素可能很慢。deque:双端队列。支持快速随机访问。在头尾位置插入/删除速度很快......
  • VectorCAST|Docker场景下的代码白盒测试实施
     Docker简介  Docker是一个开源的应用容器引擎,它可以实现让开发者打包他们的应用、依赖以及配置到一个可移植的镜像中,并且可以发布到任何可运行Docker的Linux或Windows操作系统的机器上,并可以无需再次进行配置便完美执行。Docker容器是使用的沙箱机制,任何容器之间的创建、运......
  • (unordered_)set,(unordered_)map,数组(vector)
    set:保证元素的唯一性,并且元素从小到大排序unordered_set:保证元素的唯一性,并且元素的顺序未知,不一定和输入相同map:键从小到大排序unordered_map:键的顺序未知,不一定和输入相同数组(vector):元素的顺序和输入相同......
  • 手写PCA(主元分析法)计算点云法向量(详细注释) 【Matlab代码】
    原理PCA原理主元分析法PCA学习笔记点云法向量与点云平面拟合的关系(PCA)EstimatingSurfaceNormalsinaPointCloud3D【24】PCA点云法向量估计利用PCA计算点云的法线3D点云法向量估计(最小二乘拟合平面)为什么用PCA做点云法线估计?利用PCA求点云的法向量pca_demo.mclcclearclosea......
  • 科技云报道:押注向量数据库,为时过早?
    科技云报道原创。在大模型的高调火热之下,向量数据库也获得了前所未有的关注。近两个月内,向量数据库迎来融资潮,Qdrant、Chroma、Weaviate先后获得融资,Pinecone宣布1亿美元B轮融资,估值达到7.5亿美元。东北证券预测,到2030年,全球向量数据库市场规模有望达到500亿美元,国内向量数据库市场......