置顶推荐: CuteSTL:https://github.com/jxd134/algorithm/tree/master/CuteSTL TinySTL:https://github.com/zouxiaohang/TinySTL 本人基于TinySTL的源码,结合《STL源码剖析》学习STL。
分类:
其他好文 时间:
2016-02-20 00:38:57
阅读次数:
224
看stl源码时,有一段代码感觉很奇怪 iterator begin() { return (link_type)((*node).next); } iterator和link_type是两种不同类型,怎么能这么返回呢?翻了一下以前的笔记,发现是由转换构造函数生成临时对象再return。 转换构造函数
分类:
编程语言 时间:
2016-02-02 23:19:43
阅读次数:
194
看了《stl源码剖析》中关于traits的部分,由于对模板还不是很熟悉,就看了一下还未完工的C++ Template 进阶指南 ,感觉收获很大,推荐一下。 在使用迭代器时,为了知道它的相应类型,可以使用模板的参数推导,代码如下template struct MyItertypedef T valu....
分类:
其他好文 时间:
2016-01-24 01:48:12
阅读次数:
249
有时会觉得缺乏理论知识指导,导致有些模块的实现无法做到稳定、高效、简洁。本文旨在整理遇到过得比较好的数据结构与算法的实现,旨在反省自身,同时如果对读者有帮助,那再好不过了。 参考书目:《STL源码剖析》、《python源码剖析》、Leetcode题目 本文从分以下几个方面: 1. STL的容器 2....
分类:
编程语言 时间:
2016-01-01 13:00:06
阅读次数:
143
C++ STL 的实现:1.vector底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问4.stack 底层一般用23实现,封....
分类:
编程语言 时间:
2015-12-16 21:34:17
阅读次数:
200
stl_config.h defalloc.h stl_alloc.h memory.cpp stl_construct.h stl_uninitialized.h stl_iterator.h type_traits.h stl_vector.h stl_pair.h stl_list.h stl...
分类:
编程语言 时间:
2015-11-23 13:15:24
阅读次数:
172
看侯捷老师的《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
1. C++ STL是C++程序员必看的开源项目,可以看SGI版本的STL源码,因为它的可读性很好。源码下载地址:Download STL source code例如sort函数的源码就在stl_algo.h文件中,同时侯杰有一本书《stl源码剖析》必读。2.如果是vs2008或者2010可以在Mi...
分类:
其他好文 时间:
2015-10-25 20:41:32
阅读次数:
204
深入理解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