此版本的list类,很多信息都保存在内部类里面。如果抛开这些内部类,list类里面实质的成员只包括三个:protected:
_A allocator; //空间配置器
_Nodeptr _Head; //list节点
size_type _Size; //list内元素个数抛开空间配置器不谈,_Head节点是一个_Node类型的指针struct _Node;...
分类:
其他好文 时间:
2015-07-12 09:47:24
阅读次数:
281
#include
using namespace std;
//没有采用迭代器和空间配置器所实现的双向链表的基本功能
template //定义模板类
class list //list类
{
public:
typedef size_t s...
分类:
编程语言 时间:
2015-07-10 22:25:43
阅读次数:
148
STL所有的操作对象(所有的数值)都存放在容器之内,容器需要分配空间以存放数据。为什么不说allocator是内存配置器而是空间配置器,因为空间不仅是内存,空间也可以是磁盘或其它辅助储存媒体。这里我们主要讨论内存配置。
SGI STL每个容器缺省的空间配置器为alloc,如vector: template
clas...
分类:
其他好文 时间:
2015-06-18 09:47:39
阅读次数:
124
Allocaorallocator 指的是空间配置器,用于分配内存。STL中默认使用SGI STL alloc作为STL的内存分配器,尽管未能符合标准规格,但效率上更好。SGI STL也定义有一个符合标准,名为allocator的配置器,但SGI自己从未使用过它,主要原因是它仅仅把C++的new操作...
分类:
其他好文 时间:
2015-05-17 10:46:39
阅读次数:
136
STL的设计非常巧妙,组件间互取短长,形成了一个世界,这是这个世界里的组件:
1. containers(容器):所谓容器,是指存放数据的地方,将数据以一定的方法组织存放。根据不同的组织方式,可以把容器分为顺序容器,如vector、deque、list,关联容器,如set、map。Container是一种class template。
2. algorithm(算法):各种常用不常用的算法如s...
分类:
其他好文 时间:
2015-04-16 21:55:30
阅读次数:
220
//---------------------------15/04/05----------------------------
/*
空间配置器概述:
1:new操作包含两个阶段操作
1>调用::operator new配置内存(底层使用malloc来申请内存)。
2>调用函数的构造函数,构造对象内容。
...
分类:
其他好文 时间:
2015-04-06 11:29:31
阅读次数:
151
在C++ STL的SGI实现版本中,一级空间配置器class __malloc_alloc_template中有一个静态函数的实现如下:static void (*set_malloc_handler(void (*f)()))() { void (*old)() = __malloc_all...
分类:
其他好文 时间:
2015-04-03 19:23:47
阅读次数:
178
STL的空间配置器作为STL六大部件的重要组成部分,它总是隐藏在一切组件的背后.它主要负责动态空间的分配、释放等管理工作。整个STL的操作对象(所有的数值)都存放在容器之内,而容器一定需要配置空间以置放资料。而这就是空间配置器(allocator)的职责了.一.SGI的空间配置器—std::al.....
分类:
其他好文 时间:
2015-03-06 12:27:31
阅读次数:
149
SGI设计了双层级配置器,第一级配置器直接使用malloc()和free(),第二级配置器视情况采用不同的策略:当配置区块超过128bytes时,调用第一级配置器,当配置区块小于128bytes时,采用内存池方式//SGI第一级配置器templateclass __malloc_alloc_temp...
分类:
其他好文 时间:
2015-01-11 14:49:54
阅读次数:
236
STL源码分析—空间配置器
空间配置器中门道
在STL中的容器里都是使用统一的空间配置器,空间配置器就是管理分配内存和销毁内存的。在STL将在heap空间创建一个对象分为两个步骤,第一是申请一块内存,第二是在这块内存中初始化一个对象。首先申请空间是由malloc提供,初始化一个对象时由constructor管理。销毁一个对象也是由两步骤完成,第一是销毁空间上的对象,第二是释放这块内存。
同时...
分类:
其他好文 时间:
2014-12-26 16:48:26
阅读次数:
119