
STL src code
文章平均质量分 73
pandening
我很笨,但我很勤劳!
展开
-
STL空间配置器(一)
STL空间适配器(一)Author:胡建 Time:2016/4/5 这是STL学习的第一部分,空间适配器,所谓空间适配器,就是用来管理内存的一个器具。对于STL来说,空间适配器是它可以正常工作的基础,也为它可以高效工作提供了动力。对于使用STL来说,它是不和用户直接打交道的,而是隐藏在一切STL组建之后,默默为各种内存申请提供支持的。 对于c++用户来说,new和delete很熟悉,这两个原创 2016-04-05 13:09:54 · 2358 阅读 · 0 评论 -
STL list
/*** Copyright (c) 2016 hujian.* Permission to use, copy, modify, distribute and sell this software* and its documentation for any purpose is hereby granted without fee,* provided that the above c原创 2016-04-18 21:47:11 · 429 阅读 · 0 评论 -
STL vector
/*** Copyright (c) 2016 hujian.* Permission to use, copy, modify, distribute and sell this software* and its documentation for any purpose is hereby granted without fee,* provided that the above原创 2016-04-17 16:42:04 · 430 阅读 · 0 评论 -
STL 源码剖析 queue
#ifndef _HJSTL_QUEUE_H_#define _HJSTL_QUEUE_H_/** Author:hujian* Time:2016/4/30* discription:this file is about queue structure.* NOTICE:using deque as the low-level structure of queue.* you ca原创 2016-04-30 20:54:45 · 428 阅读 · 0 评论 -
STL 源码剖析 stack
#ifndef _HJSTL_STACK_H_#define _HJSTL_STACK_H_/** Author:hujian* Time:2016/4/30* discription:this file is about stack structure.* NOTICE:using deque as the low-level structure of stack.* you ca原创 2016-04-30 20:53:50 · 449 阅读 · 0 评论 -
STL 源码剖析 deque实现源码
#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-28 14:31:10 · 2403 阅读 · 0 评论 -
STL迭代器(二)
这是SGI STL迭代器学习的第二部分,上一部分我对整个STL迭代器做了一些学习,知道了什么叫迭代器,什么叫traits编程技术,算是对迭代器有了一个整体上的认识,那么在这一部分中,我想要深入一点,了解一些本质上的东西,并且期望做到整体把握迭代器的设计原理与方法。 指针(原生)是一种特殊的迭代器,因为它可以达到迭代器一样的功能,反过来,迭代器是一种指针,这样对吗? 确实,迭代器就是原创 2016-04-11 12:14:21 · 510 阅读 · 0 评论 -
STL迭代器(一)
迭代器学习(一)《STL 源码剖析》中,第三章叫“迭代器概念与traits编程技法”。总共33页,我艰难的读了一遍,愚蠢的我还是被所谓“traits技法”惊呆了!说白了,想要真正明白迭代器,就必须了解traits编程技术。 但不忙,在看什么是traits之前,先看看什么叫“迭代器”:迭代器是一种设计模式,他要求提供一种方法,使之能够一次访问某个聚合物内部的元素,而又无需暴露该聚合物内部的表达方式。原创 2016-04-10 13:59:32 · 638 阅读 · 0 评论 -
STL配置器(四)----内存池技术
关于内存池,我相信大家都比较感兴趣,实现的版本也很多,但无论怎么实现,我觉得很重要的一点是:不能让管理内存池的成本太大!这是关键。比如,你管理100M的内存需要花50M的空间才能搞定,那我觉得不如直接用malloc和free来得实在,除了管理内存消耗外,还要注意效率,如果效率太低那也没什么意义。本质上,内存池技术的出现是为了减少fragment碎片问题,用malloc和free来操作内存容易造原创 2016-04-08 22:48:22 · 2627 阅读 · 0 评论 -
STL空间配置器(三)
上一篇没写完的代码,因为我用的是VS2013所以无法测试我的配置器,我是照着SGI的版本写的,所以不符合STL标准规范,而VS随身带的STL是符合STL规范的,所以我无法测试,等到我自己写好了迭代器,容易之后,就可以测试了,不过在这之前,我将专门用一篇文件来学习并且自己写一个内存池,然后将这个内存池部署到我的HJSTL里面,下面是完整的HJSTL 空间配置器代码 1.0.0,大规模模仿SGI,但是原创 2016-04-07 10:34:20 · 491 阅读 · 0 评论 -
STL空间配置器(二)
上一篇是对STL空间配置器的入门级理解,在这一篇中,我将讨论更加深入的SGI STL空间适配器的内容。在下一节中,我将根据自己的理解,结合STL标准接口,实现一个符合STL标准的具有次级配置能力的简单空间配置器,将剪掉一切不需要的代码,在加上我自己的理解,实现一个更容易阅读与理解的空间配置器。 在开始进入正题之前,我先来谈谈为什么要花这么长的时间在看空间配置器的部分,而且对于学习如何使用STL来说原创 2016-04-06 19:57:32 · 1502 阅读 · 0 评论 -
STL源码剖析heap
现在可以到github上下载目前为止的所有文件了。 其中,hjstl_vector目前无法正常工作,后期会回来修复bug。 下面是地址:https://github.com/pandening/HJSTL#ifndef _HJ_STL_HEAP_原创 2016-05-05 10:14:55 · 547 阅读 · 0 评论