3.STL及内存管理
文章平均质量分 78
cooljuly
这个作者很懒,什么都没留下…
展开
-
STL源码剖析 笔记之二 空间配置器
第二章 空间配置器SGI也定义有一个符合部分标准、名为allocator的配置器,但SGI自己从未使用,也不建议使用。它只是把操作符new和delete做一层简单的包装而已。SGI特殊的空间空间配置器,std::alloc一般而言,我们习惯的C++的内存配置和释放操作1.调用new配置内存 alloc::allocate()2.调用构造 ::c原创 2012-11-30 14:33:03 · 472 阅读 · 0 评论 -
STL源码剖析 笔记之三 迭代器
第三章 迭代器概念与traits编程技法《Design Patterns》中提供有23个设计模式的完整描述。迭代器模式定义如下,提供一种方法,使之能够依序巡防某个聚合物(容器)所含的各个元素,而又无需暴露该聚合物的内部表述方式。迭代器是一种Smart Pointer,迭代器是一种行为类似指针的对象,而指针的各种行为中最重要也是最常见的就是dereference和member a原创 2012-11-30 14:34:48 · 490 阅读 · 0 评论 -
STL源码剖析 笔记之四 序列式容器
第四章 序列式容器所谓序列式容器,其中的元素都可序,但未必有序。C++语言本身提供了一个序列式容器array。序列式容器: array C++内建 vector heap 以算法呈现(xxx_heap) priority-queu原创 2012-11-30 14:37:16 · 536 阅读 · 0 评论 -
STL源码剖析 笔记之五 关联式容器
第五章 关联式容器标准的STL关联式容器分为set和map两大类,以及这两大类的衍生体multiset和multimap。这些容器的底层机制均以RB-tree完成。RB-tree也是一个独立容器,但是不开放给外界使用。所谓关联式容器,观念上类似关联式数据库:每个元素都有一个键值(key)和一个实值(value)。当元素被插入到关联式容器中时,容器内部结构便依照其键值大小原创 2012-12-09 13:40:32 · 703 阅读 · 0 评论 -
STL源码剖析 笔记之六 算法
第六章 算法algorithms (这章这里先粗略读过,大体看懂源码就过,不会深究每个算法的实现细节,回头再去研究数据结构与算法设计这本)以有限的步骤,解决逻辑或数学上的问题,我们称为算法。特定的算法往往搭配特定的数据结构。特定的数据结构是为了实现某种特定的算法。决定算法所耗用的资源,包括空间和时间,这个操作称为算法分析。STL算法总览质变算法,是指运算过程中会更改区间原创 2012-12-11 20:41:03 · 579 阅读 · 0 评论 -
STL源码剖析 笔记之七 仿函数
第七章 仿函数仿函数又称函数对象,一种具有函数特质的对象。用仿函数替代函数指针的原因,函数指针不能满足STL对抽象性的要求,也不能满足软件积木的要求(与其他STL组件配搭)。所有的仿函数定义于,使用时需包含头文件。STL仿函数的可配接性STL仿函数应该有能力被函数配接器修饰,彼此像积木一样串联。为了拥有配接能力,仿函数必须定义自己的相应类型。就像迭代器如果要融入整个原创 2012-12-11 20:41:56 · 708 阅读 · 0 评论 -
STL源码剖析 笔记之八 配接器
第八章 配接器配接器在STL组件的灵活组合运用上,扮演着轴承、转换器的角色。设计模式中对配接器的定义如下:将一个class的接口转换为另一个class的接口,使其因接口不兼容而不能合作的classes,可以一起运作。1.container adapter 改变容器接口的配接器STL提供的queue和stack这两个容器,其实属于配接器,它们修饰deque的接口而成就另一种容器风貌。原创 2012-12-11 20:44:20 · 609 阅读 · 0 评论 -
STL源码剖析 笔记之一 STL概述
第一章 STL概述 STL所实现的,是依据泛型思维架设起来的一个概念结构。这个以抽象概念为主体而非以实际类为主体的结构,形成了一个严谨的接口标准。在此接口下,任何组件都有最大的独立性,并以所谓迭代器胶合起来,或以所谓配接器互相配接,或以所谓仿函数动态选择某种策略。STL提供六大组件,彼此可以组合套用。1.容器(contrainers):各种数据结构,如vector,lis原创 2012-11-30 14:30:31 · 448 阅读 · 0 评论