首页 > 其他分享 >vector的用法

vector的用法

时间:2023-02-16 22:13:26浏览次数:40  
标签:容器 元素 用法 vector 数组 长度 模板

介绍

  vector(矢量; 向量),vector是C++标准模板库(STL)中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

  vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值,它的一个容器中的所有对象都必须是同一种类型的。

  vector 是一个类模板。使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。因此,我们可以定义保存 string 对象的 vector,或保存 int 值的 vector,又或是保存自定义的类类型对象的 vector。vector 不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。vector 类型的每一种都指定了其保存元素的类型。

用法

  在C++中,vector是个常用的容器,一下是它的具体用法

vector<int> v(n,i); //建立一个长度为n的一维动态数组v,初始每个元素都赋值为i
vector<vector<int> > ve; //建立一个二维动态数组ve(特别注意:'>'和'>'之间有一个空格,如果不打,会被认为是位移运算而报错)
v.push_back(a); //将a元素放在v数组的末尾,且数组长度加1
v.begin(); //返回数组v的首元素
v.end(); //返回数组v的末端元素的下一个
v.size(); //返回数组v的长度
v.erase(a); //删除a位置的数据,并传回下一个数据的位置
v.resize(n,m); //重定义v的长度为n,若n小于原数组的长度,就删除多余元素,若n大于原数组的长度,则将多出来的部分赋值为m
vector<int>::iterator it; //建立一个叫it的迭代器

  同时,在使用vector是需要用特点的头文件

#include<vector> //使用vector的特定头文件,虽然我更喜欢用万能头

优点

  动态数组可以随时调整数组大小,并且提供额外的方法增加、减小数组中的元素,相对于数组十分的高效。

缺点

  运行速度与数组相比较慢。

标签:容器,元素,用法,vector,数组,长度,模板
From: https://www.cnblogs.com/jsyczzws/p/17128479.html

相关文章

  • Python sorted函数及用法
    orted()作为 Python 内置函数之一,其功能是对序列(列表、元组、字典、集合、还包括字符串)进行排序。sorted()函数的基本语法格式如下:list=sorted(iterable,key=None,......
  • Jenkins的PublishOverSSH插件的Lable用法
    插件准备ParameterizedTriggerPublishOverSSH项目配置参数插件ParameterizedTrigger的配置PublishOverSSH配置常规配置如下图,总共配置了两个服务器,Labl......
  • Linux 压缩文件用法
    #tar命令:可以用来压缩或解压缩文件:#压缩tar-czvffilename.tar.gzfiles#解压缩tar-xzvffilename.tar.gz#gzip命令:可以用来压缩或解压缩文件:#压缩gzipf......
  • vue3数据类型ref,Reactive,shallowRef,shallowReactive基本用法
    1.ref用于创建基础类型的响应式,也可以创建引用类型的响应式.2.ref对于引用类型,底层也是转换为reactive来进行响应式处理3.ref创建的响应式数据在脚本中需要通过.......
  • .Net6 WebApi中集成FluentValidation.AspNetCore的用法
    一、首先在nuget管理器中添加FluentValidation.AspNetCore包 二、添加验证类并继承AbstractValidator<T>,T为原始参数类,在验证类的构造函数中添加验证内容  三、......
  • vue-seamless-scroll 组件用法-区域内容滚动效果
    1.滚动效果2.代码<divclass="page-container"style=""><vue-seamless-scroll:data="listData":class-option="defaultOption"><ulclass="ul-scol......
  • Serializable接口的意义和用法
    publicclassEmployeeimplementsSerializable{...}Serializable接口是启用其序列化功能的接口。实现java.io.Serializable接口的类是可序列化的。没有实现此接口......
  • Antd里面的Select选择器的一些非常规用法
    Select选择器 检索的时候是默认按照id检索的 我们通常用label检索的 optionFilterProp搜索时过滤对应的 option 属性,如设置为 children 表示对内嵌内容进......
  • @Bean注解和@Resource注解的用法作用
    今天学习Hikari资源池,想对资源池的一些参数进行监听时,不知道使用什么方法,然后查阅资料得知通过创建配置类,在配置类里对HikariDataSource进行初始化,通过@Bean创建bean交给sp......
  • 通过 Rancher 实现 NeuVector 安全事件监控和告警
    作者简介涂家英,SUSE资深架构师,专注Cloud-Native相关产品和解决方案设计,在企业级云原生平台建设领域拥有丰富的经验。NeuVector是SUSE开源的​​端到端的全生命周期容......