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

环境:Linux  CentOS 5.2

1、代码

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

2、运行结果

data size : [  ], mem size : [  ]
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
......
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
......
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
......
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
......
data size : [ ], mem size : [ ]
data size : [ ], mem size : [ ]
data size : [ ], mem size : []
data size : [ ], mem size : []
......
data size : [], mem size : []
data size : [], mem size : []
data size : [], mem size : []
data size : [], mem size : []
......
data size : [], mem size : []
data size : [], mem size : []
data size : [], mem size : []
data size : [], mem size : []
data size : [], mem size : []
data size : [], mem size : []

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

C++的STL中vector内存分配方法的简单探索的更多相关文章

  1. rt-thread中动态内存分配之小内存管理模块方法的一点理解

    @2019-01-18 [小记] rt-thread中动态内存分配之小内存管理模块方法的一点理解 > 内存初始化后的布局示意 lfree指向内存空闲区首地址 /** * @ingroup Sys ...

  2. STL中vector、list、deque和map的区别

    1 vector     向量 相当于一个数组    在内存中分配一块连续的内存空间进行存储.支持不指定vector大小的存储.STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capac ...

  3. STL中的内存与效率

    STL中的内存与效率 1. 使用reserve()函数提前设定容量大小,避免多次容量扩充操作导致效率低下.  关于STL容器,最令人称赞的特性之一就是是只要不超过它们的最大大小,它们就可以自动增长到足 ...

  4. STL容器的内存分配

    这篇文章参考的是侯捷的<STL源码剖析>,所以主要介绍的是SGI STL实现版本,这个版本也是g++自带的版本,另外有J.Plauger实现版本对应的是cl自带的版本,他们都是基于HP实现 ...

  5. 【转】STL中vector、list、deque和map的区别

    1.vector 向量 相当于一个数组 在内存中分配一块连续的内容空间进行存储.支持不指定vector大小的存储.STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacity()函数 ...

  6. java中子类实例化过程中的内存分配

    知识点: 子类继承父类之后,实例化子类时,内存中子类是如何分配内存的呢? 下面,自己会结合一个例子,解释一下,一个子类实例化过程中,内存是如何分配的 参考博客:http://www.cnblogs.c ...

  7. Java实例化对象过程中的内存分配

    Java实例化对象过程中的内存分配: https://blog.csdn.net/qq_36934826/article/details/82685791 问题引入这里先定义一个很不标准的“书”类,这 ...

  8. Netty 中的内存分配浅析

    Netty 出发点作为一款高性能的 RPC 框架必然涉及到频繁的内存分配销毁操作,如果是在堆上分配内存空间将会触发频繁的GC,JDK 在1.4之后提供的 NIO 也已经提供了直接直接分配堆外内存空间的 ...

  9. Netty 中的内存分配浅析-数据容器

    本篇接续前一篇继续讲 Netty 中的内存分配.上一篇 先简单做一下回顾: Netty 为了更高效的管理内存,自己实现了一套内存管理的逻辑,借鉴 jemalloc 的思想实现了一套池化内存管理的思路: ...

随机推荐

  1. html5拖拽

    html5拖拽一 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...

  2. php获取当前页面的完整url

    javascript实现: top.location.href 顶级窗口的地址 this.location.href 当前窗口的地址 php实现: //测试网址: http://localhost/b ...

  3. Parallel.js初探续集

    @author mrbean 例子均来源于github parallel.js 昨天写的第一篇今天一看居然有50+的阅读量了,感觉很激动啊,但是也有点害怕毕竟这只是自己笔记性质的一点东西,所以赶紧拿起 ...

  4. hdu 1517 博弈 **

    博弈题: 题意:2 个人玩游戏,从 1 开始,轮流对数进行累乘,直到超过一个指定的值. 解题思路:如果输入是 2 ~ 9 ,因为Stan 是先手,所以Stan 必胜如果输入是 10~18 ,因为Oll ...

  5. PMP 第八章 项目质量管理

    1规划质量 2实施质量保证 3实施质量控制 质量成本 1.等级和质量的区别?现代质量管理的重要性,关注图8-2    质量是一些列内在特性满足要求的程度,而等级是对用途相同但技术特性不同的产品或服务的 ...

  6. 趣味算法:字符串反转的N种方法(转)

    老赵在反对北大青鸟的随笔中提到了数组反转.这的确是一道非常基础的算法题,然而也是一道很不平常的算法题(也许所有的算法深究下去都会很不平常).因为我写着写着,就写出来8种方法……现在我们以字符串的反转为 ...

  7. Linux常用工具之XFTP、Xshell配置

    Xftp是一个基于 MS windows 平台的功能强大的SFTP.FTP文件传输软件.使用了 Xftp 以后,MS windows 用户能安全地在UNIX/Linux 和 Windows PC 之间 ...

  8. LoadRunner11录制APP脚本(1)

    1.测试准备: a.首先安装LoadRunner11.0的版本跟新

  9. Maven项目在Eclipse中调试 Debug

    废话不说一路跟图走. 断点会进入到如下页面点击Edit Source Lookup Path 如下图操作 成功进入Debug模式

  10. CLR 初步

    1. 源代码编译为托管模块 程序在.NET框架下运行,首先要将源代码编译为 托管模块.CLR是一个可以被多种语言所使用的运行时,它的很多特性可以用于所有面向它的开发语言.微软开发了多种语言的编译器,编 ...