博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++的STL中vector内存分配方法的简单探索
阅读量:6670 次
发布时间:2019-06-25

本文共 1679 字,大约阅读时间需要 5 分钟。

STL中vector什么时候会自动分配内存,又是怎么分配的呢?

环境:Linux  CentOS 5.2

1、代码

#include 
#include
using namespace std;int main(){ vector
x_vec; printf("data size : [%3d], mem size : [%3d]\n", x_vec.size(), x_vec.capacity()); for(int i = 0; i < 260; i++) { x_vec.push_back(i); printf("data size : [%3d], mem size : [%3d]\n", x_vec.size(), x_vec.capacity()); } return 0;}

2、运行结果

data size : [  0], mem size : [  0]data size : [  1], mem size : [  1]data size : [  2], mem size : [  2]data size : [  3], mem size : [  4]data size : [  4], mem size : [  4]data size : [  5], mem size : [  8]......data size : [  8], mem size : [  8]data size : [  9], mem size : [ 16]data size : [ 10], mem size : [ 16]......data size : [ 15], mem size : [ 16]data size : [ 16], mem size : [ 16]data size : [ 17], mem size : [ 32]data size : [ 18], mem size : [ 32]......data size : [ 31], mem size : [ 32]data size : [ 32], mem size : [ 32]data size : [ 33], mem size : [ 64]data size : [ 34], mem size : [ 64]......data size : [ 63], mem size : [ 64]data size : [ 64], mem size : [ 64]data size : [ 65], mem size : [128]data size : [ 66], mem size : [128]......data size : [127], mem size : [128]data size : [128], mem size : [128]data size : [129], mem size : [256]data size : [130], mem size : [256]......data size : [255], mem size : [256]data size : [256], mem size : [256]data size : [257], mem size : [512]data size : [258], mem size : [512]data size : [259], mem size : [512]data size : [260], mem size : [512]

 

结论:每次分配的内存用尽时,vector以指数方式再次分配内存

 

转载地址:http://xulxo.baihongyu.com/

你可能感兴趣的文章
JavaScript DOM 编程艺术(第2版)读书笔记(5)
查看>>
工作流开发使用问题汇总
查看>>
常用Build-in Keywords
查看>>
leetcode — edit-distance
查看>>
第一次作业:基于Linux进程模型的分析
查看>>
贝叶斯学习1
查看>>
CSS 和 JS 动画哪个更快
查看>>
.NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱
查看>>
正则表达式匹配html标签里面的内容
查看>>
window.open()的具体使用方法
查看>>
【IntelliJ IDEA】idea显示工具栏
查看>>
Android Exception 5(startActivityForResult & singleTask)
查看>>
sp_send_dbmail权限问题
查看>>
数学分析_Tom Apostol_习题 9.1
查看>>
windows2008 R2 标准版+IIS7.5 +PHP网站发布
查看>>
在Linux中,如何取出一个字符串的前5位
查看>>
myeclipse删除项目后重新导入
查看>>
在进入新版本 的时候,进行推送引导
查看>>
Django 下载和初识
查看>>
Hawk浩客 v992 硬盘 易驱线 试用
查看>>