当前位置: 首页 > news >正文

+1.1向量 链表 数组

向量:向量支持随机读取和更改 查找一般 末端删除快 随机删除慢,它是 “class”. 可作为顺序容器,类似数组,但大小可动态变化。与数组比较,它浪费存储空间,用起来麻烦

链表:只有头结点有名字,不支持随机读取和更改 查找慢 元素较多时删除时间大约是查找时间,适用于插入或删除频繁,存储空间需求不定的情况,存储空间不连续,动态分配内存;

数组:,数组是“变量,大小不可改变,数组无法动态定做,或者要做额外的善后工作,数组无法整体复制,向量可以,数组无法扩容。存储效果高,存取数度快;

 

 

 

 

vector(向量)是c++STL(标准模板类库)的重要一员,使用时,要包含头文件vector即可。

  • 数组无法整体复制

int a[10] = {0};
int b[10] = a; //错

vector<int> c(10);
vector<int> d = c; //正确

除此之外,向量还有好多种定义方式,还可以从数组中获得初值,例如

int a[3] = {1, 2, 3};
vector<int> va(a, a+3);

 

  • 数组无法动态定做,或者要做额外的善后工作

int n;
cin>>n;
int a[n]; //不正确,数组大小不确定

若采用动态定做,从而需要释放空间

int n;
cin>>n;
int* ap = new int[n];
// 一系列数据处理
delete[] ap;

如果换成向量,则一目了然

int n;
cin>>n;
vector<int> va(n);

  • 数组无法扩容

vectot<int> va;

//无法想象对应的数组操作
for (int a; cin>>a; va.push_bach(a));

 

向量还有好多常用的操作,这些操作是数组所不具备,但同时向量又可以像数组一样被使用,例如:

vector<int> a;
a.push_bach(5); //在a向量最后位置插入一个元素
a.pop_back(); //删除a向量的最后一个元素
a.clear(); //清空a向量中的元素
int x = a.front(); //将a向量的第一个元素赋给x
int y = a.back(); //将a向量的最后一个元素赋给y
bool b = a.empty(); //判断是否为空
a.resize(10); //将元素个数调至10个,多则删,少则补

//等等

其中a.begin(),b.end()分别表示向量a的起始元素位置和最后一个元素之外的元素位置.

输出向量中的元素可以如下:

for (int i = 0; i < a.size(); ++i)
    cout<<a[]<<" ";

还有一个比较有用的是对向量中的元素进行排序:

sort(a.begin(), a.end()); //从小到大排序

 

 

 

 

转载于:https://www.cnblogs.com/Ph-one/p/7553209.html

相关文章:

  • 对于逆序数组,,选择排序 和 插入排序 那个更快?
  • +7白盒测试与黑盒测试的定义与区别
  • +1瀑布模型的主要特征是什么
  • EFM32G232F64时钟树
  • C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识...
  • Ubuntu gcc错误:对'log'等函数未定义的引用
  • error: 'for' loop initial declarations are only allowed in C99 mode
  • 浮点数比较大小的问题
  • 线性代数线性相关特例
  • +2开闭原则
  • (+4)2.2UML建模图
  • 2.1分层数据流
  • +6是不是用例越多越好?为什么说明原因
  • +1阿姆达尔定律
  • +2流水线是怎样提高性能的,会遇到什么问题,解决方法是什么
  • 【Leetcode】101. 对称二叉树
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • docker python 配置
  • extract-text-webpack-plugin用法
  • Fundebug计费标准解释:事件数是如何定义的?
  • Golang-长连接-状态推送
  • JavaScript创建对象的四种方式
  • java取消线程实例
  • Object.assign方法不能实现深复制
  • ReactNativeweexDeviceOne对比
  • SAP云平台里Global Account和Sub Account的关系
  • SQLServer之创建数据库快照
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 理解在java “”i=i++;”所发生的事情
  • 如何学习JavaEE,项目又该如何做?
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • # Apache SeaTunnel 究竟是什么?
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (day 12)JavaScript学习笔记(数组3)
  • (pojstep1.3.1)1017(构造法模拟)
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十)c52学习之旅-定时器实验
  • (十一)图像的罗伯特梯度锐化
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)大型网站架构演变和知识体系
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ***检测工具之RKHunter AIDE
  • .chm格式文件如何阅读
  • .NET Core跨平台微服务学习资源
  • .Net Winform开发笔记(一)
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET6实现破解Modbus poll点表配置文件
  • .NET中的十进制浮点类型,徐汇区网站设计
  • @JSONField或@JsonProperty注解使用
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决