空间配置器隐藏在一切组件之后。 1.1 设计一个简单的空间配置器 根据STL的规范,以下是allocator的必要接口: allocator::value_type allocator::pointer allocator::const_pointer allocator::reference al ...
分类:
其他好文 时间:
2016-04-20 19:45:55
阅读次数:
135
STL空间适配器(一)
Author:胡建
Time:2016/4/5
这是STL学习的第一部分,空间适配器,所谓空间适配器,就是用来管理内存的一个器具。对于STL来说,空间适配器是它可以正常工作的基础,也为它可以高效工作提供了动力。对于使用STL来说,它是不和用户直接打交道的,而是隐藏在一切STL组建之后,默默为各种内存申请提供支持的。
对于c++用户来说,new和delete很熟悉,这两个...
分类:
其他好文 时间:
2016-04-05 16:20:49
阅读次数:
192
SGI的空间配置器allocator只是简单的new和delete的一层包装,没有提供效率的强化。 而一般C++内存配置和释放操作如下: class Foo { ... } Foo *pf = new Foo; delete pf; new算式:1)使用new配置内存,2)使用Foo构造对象 del
分类:
其他好文 时间:
2016-03-20 21:19:01
阅读次数:
299
看侯捷老师的《STL源码剖析》有一段时间了,打算自己整理一下思路,试着实现一下。主要目的有两个:1、巩固自己对源码的理解,让自己更加深刻的体会其中各种机制的奥妙。2、通过实现这些优秀的算法,来提高自己的“内功”修养。关于空间配置器,首先作以下几点说明:1、空间配置器即为程序分配存储空间。这里的存储空...
分类:
其他好文 时间:
2015-11-18 22:44:29
阅读次数:
275
一、 空间配置器标准接口参见《STL源码剖析》第二章-2.1。二、具备次配置力的SGI空间配置器SGI STL的配置器与众不同,也与标准规范不同,其名称是alloc而非allocator,而且不接受任何参数(虽然SGI也定义有一个符合部分标准、名为sllocator的配置器,但SGI自己从未用过它,...
分类:
其他好文 时间:
2015-11-09 08:15:29
阅读次数:
209
深入理解STL源码(1) 空间配置器(allocator)深入理解STL源码(0) STL简介深入理解STL源码(3.3) 序列式容器之deque和stack、queue深入理解STL源码(3.2) 序列式容器之list深入理解STL源码(3.1) 序列式容器之vector深入理解STL源码(2) ...
分类:
其他好文 时间:
2015-09-24 14:13:34
阅读次数:
190
理解了一下stl的空间配置器,发现一个比较好的学习方法,跟着代码自己也跟着写一遍,顺便加些注释,可以更加帮助自己理解。如new,delete一般,分为两个步骤,1,配置空间,2,构造对象(1,析构对象,2,释放空间)一。构造和析构的基本工具(construct,destroy)1,construct...
分类:
其他好文 时间:
2015-08-16 21:12:48
阅读次数:
119
空间配置器(allocator)
空间配置器按我的理解就是C++ STL进行内存管理的组件(包括内存的申请和释放);当然,不只是内存,还可以向硬盘申请空间;
我主要看了内存的配置与释放(这里“配置”就应该是“申请”的意思)。STL对此设计的哲学主要包括以下四个方面:
1、向系统堆空间申请内存空间
2、考虑了多线程的情况下的申请;
3、考虑内存不足的应变措施;
4、考虑过多“小型区块”的内存碎片的问...
分类:
其他好文 时间:
2015-07-19 10:12:24
阅读次数:
123
在list库函数的编译中仍然有很多问题,在源代码的编译中有些内容尚未搞懂,在后期的学习中会进行更加深入的学习,希望大家可以对我的问题提出建议和批评,谢谢大家~
具体的代码如下:
#include
using namespace std;
//采用迭代器和空间配置器所实现的双向链表的基本功能
template > ...
分类:
编程语言 时间:
2015-07-13 22:32:14
阅读次数:
207