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

std::vector的reserve(), resize()和shrink_to_fit()

std::vector 是 C++ 标准库中的动态数组类型,提供了多种调整其大小的接口函数。以下是几个主要的调整 std::vector 大小的接口函数:

  1. reserve(size_t n):
    这个函数不会改变当前 std::vector 的大小,但它会分配足够的内存空间来存储 n 个元素,以避免在后续插入元素时频繁进行内存分配和拷贝,从而提高插入效率。如果 n 小于当前大小,则不会发生任何变化。
myVector.reserve(100);
  1. resize(size_t n):
    这个函数会改变 std::vector 的大小,使其包含 n 个元素。如果 n 小于当前大小,则会删除多余的元素。如果 n 大于当前大小,那么会添加新的默认构造的元素在末尾,除非你使用了 std::vector::resize(size_t n, const T& val) 版本,这时可以指定用于填充新增元素的值。
myVector.resize(10);

或者

myVector.resize(10, 42);
  1. shrink_to_fit():
    这个函数会尝试减少 std::vector 的大小,使其只包含当前容器中实际使用的元素。如果所有元素都被移动到新的连续内存块中,则容器的容量将减少。这可以释放未使用的内存,并提高内存效率。
myVector.shrink_to_fit();

以上就是 std::vector 主要的调整大小接口函数,它们提供了足够的灵活性来适应不同的数据管理需求。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 559. N 叉树的最大深度(递归法)
  • wp-autopost-pro 3.7.8最新完美版
  • 神经网络——非线性激活
  • wooyu漏洞库YYDS!!!入门之道:重现乌云漏洞库
  • 【Java EE】深入理解 Java 线程的生命周期与状态转换
  • Python 和 PyCharm 安装(傻瓜式)
  • C 06 编译4阶段
  • Linux 下 gdb 的使用
  • 10个企业网络安全建议,解决99%的网络安全问题
  • Clickhouse 二进制安装
  • 一个资深测试工程师面试一来就问我这些题目
  • 《黑神话·悟空》:国产3A大作背后是用什么语言开发的?
  • OpenGL实现3D游戏编程【连载5】——纹理坐标、纹理贴图
  • 链接 -- 动静态链接 --特点、区别、静态库安装下载
  • 基于huggingface peft进行qwen1.5-7b-chat训练/推理/服务发布
  • 《剑指offer》分解让复杂问题更简单
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • CentOS 7 修改主机名
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • gitlab-ci配置详解(一)
  • Git的一些常用操作
  • iOS编译提示和导航提示
  • Java IO学习笔记一
  • javascript数组去重/查找/插入/删除
  • MySQL的数据类型
  • OSS Web直传 (文件图片)
  • Shell编程
  • uva 10370 Above Average
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 高性能JavaScript阅读简记(三)
  • 关于Java中分层中遇到的一些问题
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端面试总结(at, md)
  • 实战|智能家居行业移动应用性能分析
  • 温故知新之javascript面向对象
  • 因为阿里,他们成了“杭漂”
  • 用mpvue开发微信小程序
  • MPAndroidChart 教程:Y轴 YAxis
  • 从如何停掉 Promise 链说起
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • #每日一题合集#牛客JZ23-JZ33
  • (9)STL算法之逆转旋转
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (回溯) LeetCode 78. 子集
  • (论文阅读30/100)Convolutional Pose Machines
  • (七)c52学习之旅-中断
  • (五)activiti-modeler 编辑器初步优化
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • ***利用Ms05002溢出找“肉鸡
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET性能优化(文摘)