在做csapp的malloc实验,一开始是按照书上的隐式链表法,发现得分很低。这种方法确实很挫,需要遍历一遍以找到合适的空闲块。于是我想到《STL源码剖析》中stl的内存池,感觉应该可以用类似的方法做,因为malloc要做的事情实际就是为了防止内存碎片和减少系统调用,实际就是一个内存池。但是书上介绍 ...
分类:
其他好文 时间:
2016-05-01 19:15:06
阅读次数:
251
#ifndef _HJSTL_DEQUE_H_
#define _HJSTL_DEQUE_H_
/*
* Author:hujian
* Time:2016/4/28
* discription:this file is about deque structure.
*
*/
#include "hjstl_alloc.h"
#include "hjstl_construct.h...
分类:
其他好文 时间:
2016-04-29 15:55:19
阅读次数:
218
教你初步了解红黑树 作者:July、saturnman 2010年12月29日 作者:July、saturnman 2010年12月29日 本文参考:Google、算法导论、STL源码剖析、计算机程序设计艺术。 推荐阅读: 一、红黑树的介绍 先来看下算法导论对R-B Tree的介绍:红黑树,一种二叉 ...
分类:
其他好文 时间:
2016-04-18 22:03:45
阅读次数:
155
首先我们先来了解一下一元函数和二元函数。一元函数数学上一般形式表示为 z = f(x),只有一个变量x。二元函数数学上一般形式表示为 z = f(x,y),存在两个变量,分别是x和y。 STL中为了描述一元函数和二元函数,定义了两个结构体来描述。如下: 接下来我们来看看,一元函数结构和二元函数结构在
分类:
其他好文 时间:
2016-03-22 22:03:08
阅读次数:
769
解释说明
traits侯捷老师的翻译是萃取。其目的就是在编译期进行模板调用的类型识别,从而做一些事情。
最突出的例子,我觉得不是《STL源码剖析》中“迭代器概念与traits编程技法"这一章的说明,而是stl算法中copy的实现。代码在stl源码的stl_algobase.h中。
copy的最终实现,大致分为两类,一类是直接整块内存的memmove操作,另一类是一个个对象赋值。其中涉及has...
分类:
其他好文 时间:
2016-03-14 18:56:33
阅读次数:
250
所有的STL容器,都保存一个或默认,或由用户提供的allocator的实例,用来提供对象内存分配和构造的方法(除了std::array),这样的容器,被称作Allocator Aware Container。早期的STL,设计的尚不完善,各种实现之间不能相互兼容,这一点在侯捷的《STL源码剖析》中有
分类:
其他好文 时间:
2016-03-06 15:32:13
阅读次数:
179
转:http://www.cnblogs.com/moondark/p/3436450.html 这两天略读完了《STL源码剖析》,之所以是略读,就是只看大体,不讲具现(这个词在《深度探析C++对象模型》中比较多) 已经看过好几本C++的书了,感觉C++本身设计的博大精深,而C++编译器就更是一个神
分类:
其他好文 时间:
2016-02-29 16:33:29
阅读次数:
129