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

当vector满了之后,capacity()的自动扩充策略,扩充多少?

在C++中,当vector满了之后,capacity()的自动扩充策略是实现定义的,但大多数标准库实现采用指数增长策略。

主要实现的增长策略

1. GCC/Clang (libstdc++)

  • 通常采用 2倍增长 或 1.5倍增长

  • 在GCC中,一般是:new_capacity = max(2 * old_capacity, 1)

2. MSVC (Microsoft STL)

  • 通常采用 1.5倍增长

  • 具体公式:new_capacity = old_capacity + old_capacity / 2

测试方法:

在Windows中使用VSStudio(MSVC)测试:

#include <iostream>
#include <vector>
using namespace std;int main() {vector<int> vec;//最初容器没有元素,容量为空vec.reserve(10);//初始容量cout << "容量" << vec.capacity() << endl;vector<int>::iterator it;int i = 0;int count = 0;for (i = 0; i < 100; i++) {vec.push_back(i);count++;cout << "count : " << count << endl;cout << "开辟空间容量: " << vec.capacity() << endl;}return 0;
}

测试:

从10=》15,增长:15/10 = 1.5;

从15=》22,增长:22/15 =1.46;

从22=》33,增长:33/22=1.5;

从33=》49,增长:49/33=1.48;

从49=》73,增长:73/49=1.49;

结论:在Windows中使用VSStudio(MSVC)测试发现,确实是每次增长到之前的1.5倍!!

http://www.dtcms.com/a/513484.html

相关文章:

  • 制作个人网站主页北京网站开发培训中心
  • 网站后台建设怎么进入蚌埠网站开发
  • 国家建设标准发布网站在哪里网站建设域名所有权
  • 盘锦做网站谁家好arttemplate做电商网站
  • 服务器网站怎么做的中交路桥建设有限公司中标
  • 什么是接口测试?
  • 广西商城网站建设天元建设集团有限公司地址
  • 网站制作需要哪些东西做网站公司排行
  • 网站做支付按流量付费吗如何建设企业网站呢
  • 长沙有哪些网站建设公司汕头住房与城乡建设网站
  • 『深度编码』C++中的四种构造函数
  • 自己做博客网站什么平台可以推广
  • STM32G474单片机开发入门(二十一) IWDG独立看门狗详解及实战
  • 【算法训练营 · 补充】LeetCode Hot100(上)
  • 外贸展示型模板网站模板下载怎么在手机上做一个网站
  • 给个人网站做百度百科做的新网站做百度推广怎么弄
  • 强化学习Q-learning模型在频率决策中的实现
  • EC-Engineer SDK 核心 API 使用指南
  • JavaScript基础详解
  • 网站建设必会的软件有哪些常用的网络推广方法有
  • 使用vs2015做网站教程seo建站技巧
  • 市桥有经验的网站建设wordpress首页文件打不开
  • 小型门户网站建设硬件配置旅游网站建设水平评价
  • 操作系统4.1.3 文件目录
  • 阿里云多网站一个app费用多少钱
  • 如何做招生网站网络平台管理制度和管理办法
  • NeurIPS2025 |TrajMamba:编码器 + 双预训练,智能交通轨迹学习难题突破!
  • (论文速读)光伏缺陷检测中的快速自适应:集成CLIP与YOLOv8n实现高效学习
  • 福州高端建站网站用什么平台开发
  • 网站建设许可证湖南省建设厅厅长鹿山