
STL
honeyCR
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STL之二级空间配置器及实现
之前对于配置器的原理及一级配置器的介绍请看博文 这里写链接内容 下来我们直接介绍二级空间配置器。二级空间配置器我们通过之前的学习,已经知道。 如果所要申请的空间大于128字节,则直接交至一级空间配置器处理,如果小于128字节,则使用二级空间配置器。 二级空间配置器对内存的管理减少了小区块造成的内存碎片,它主要通过一个链表管理: 它是用一个16(128/8)个元素的自由链表来管理的...原创 2018-06-04 16:24:59 · 1608 阅读 · 0 评论 -
STL一级空间配置器
一、什么是STLSTL(standard Template Library,标准模板库),从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等。 STL也是算法和其他一些组件的集合。 STL有六大组件,彼此可以组合套用,六大组件分别是: 1、容器(containers):各种数据结构,如vector,list,deque,set,map等,用来...原创 2018-05-26 20:42:20 · 491 阅读 · 0 评论 -
迭代器失效的几种情况
关于迭代器失效,,今天做一个总结。迭代器失效分三种情况考虑,也是三种数据结构考虑,分别为数组型,链表型,树型数据结构。1、对于序列式容器,比如vector,删除当前的iterator会使后面所有元素的iterator都失效。举例如下:void vectorTest(){ vector<int> v; for (int i = 0; i < 10;...原创 2018-08-04 11:47:05 · 5183 阅读 · 0 评论 -
STL的各个容器?
STL的各个容器?序列式容器vecor,动态数组模型,它维护的是一个连续线性空间。vector的扩容:并不是在原空间之后接着开辟新空间(因为无法保证之后有可供配置的空间),而是每次再分配原大小两倍的内存空间,这是一个配置新空间(malloc),拷贝移动数据(memcpy),释放旧空间(free)的大工程,时间成本很高。因此,对vector的任何操作,一旦引起控件重新配置,指向原ve...原创 2018-08-04 14:24:55 · 1154 阅读 · 0 评论 -
项目-STL空间配置器
这篇博客主要讲一下SGI-STL中的空间配置器的工作流程。一、项目背景小块内存带来的内存碎片问题(外碎片问题)小块内存频繁申请释放带来的性能问题二、空间配置器的思想对于我们来说,对new和delete很熟悉,这两个函数可以分别完成内存的申请和释放,和c里面的malloc和free如出一辙。 Std::alloc的主要思想是: (1)定义一个空间大小阈值,128...原创 2018-08-12 16:33:44 · 275 阅读 · 0 评论