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

C++动态数组vector

 一、为什么要用vector而不是数组

虽有嘉肴,弗食,不知其旨也。______,____,____________。

简单来说就是节约内存,不容易RE 

二、如何使用vector 

既谓之数组,则用之如数组

1.定义

vector<数据类型>名称
vector<int >a;

2.向末端添加元素

 It is something that only  Apple  vector can do

a.push_back(添加的元素)
a.push_back(i)//向a的末端添加一个数i

3.随机访问

a[i]

4.遍历 (C++14版本)

	for(auto i=a.begin();i!=a.end();i++){cout<<*i<<" ";}

因为i实际上是迭代器,所以输出的时候记得解引用 

5.插入元素

// 示例:vector的快速插入
vector<int> vec = {1, 3, 4};
vec.insert(vec.begin() + 1, 2); // 插入元素2 → {1,2,3,4}

扩展:vector+二分动态维护中位数,代替堆

P1168 中位数 - 洛谷

这题如果不用这种方式的话,就要通过堆这种数据结构来做

但是用上述方法十分利于新手

6.重新定义大小

void resize(size_type n);
void resize(size_type n, const value_type& val);
//参数说明
/‌/n‌:新的容器大小(元素数量)
/‌/val‌:当需要新增元素时,用于初始化新元素的值(可选参数)

 7.”发展前景“广阔

在其他stl函数里,一般参数都是迭代器。比如upper_bound(),lower_bound(),sort()数组固然是可以衔接的,但是毕竟vector访问本身就用的迭代器。二者搭配使用更佳

http://www.lryc.cn/news/587700.html

相关文章:

  • JavaScript数据交互:现代Web应用的核心引擎
  • Redis技术笔记-主从复制、哨兵与持久化实战指南
  • 【MySQL】剖析InnoDB存储引擎
  • FBRT-YOLO: Faster and Better for Real-Time Aerial Image Detection论文精读(逐段解析)
  • Spring原理揭秘--初识AOP
  • openEuler系统串口文件手法压力测试及脚本使用说明
  • 11.设置 Python 3 和 pip 3 为默认版本
  • 从零构建搜索引擎 build demo search engine from scratch
  • 如何单独安装设置包域名
  • PostgreSQL ExecInitIndexScan 函数解析
  • Cesium源码打包
  • MyBatis 在执行 SQL 时找不到名为 name 的参数
  • 项目进度压缩影响质量,如何平衡进度与质量
  • 多模态数据处理新趋势:阿里云ODPS技术栈深度解析与未来展望
  • 【Echarts】 电影票房汇总实时数据横向柱状图比图
  • 【PostgreSQL异常解决】`PostgreSQL`异常之类型转换错误
  • 第十九篇 自动化报表生成:Python一键生成可视化Excel图表与专业PDF报告,老板看了都点赞!
  • C++11 std::is_permutation:从用法到原理的深度解析
  • grpo nl2sql qwen3 模型强化学习训练有效果的成立条件有哪些
  • c#如何将不同类型的数据存储到一起
  • 基于hadoop的竞赛网站日志数据分析与可视化(下)
  • 基于光栅传感器+FPGA+ARM的测量控制解决方案
  • 图像修复:深度学习GLCIC神经网络实现老照片划痕修复
  • RNN(循环神经网络)
  • 【git fetch submodule报错】Errors during submodule fetch 如何解决?
  • VUE export import
  • 【算法深练】BFS:“由近及远”的遍历艺术,广度优先算法题型全解析
  • 人工智能如何重构能源系统以应对气候变化?
  • 从数据洞察到设计创新:UI前端如何利用数字孪生提升产品交互体验?
  • Pythonic:Python 语言习惯和哲学的代码风格