
STL源码剖析
文章平均质量分 77
chenxl929
在校
展开
-
第1章 STL概论与版本简介
第1章 STL概论与版本简介subroutines子程序procedures程序functions函数classes类别function libraries函数库class libraries类别库components组件object oriented面向对象patterns模式reusability复用性generic paradigm泛型思维iterator迭代器adapter配接器increm原创 2017-08-25 15:51:48 · 287 阅读 · 0 评论 -
第2章 空间配接器(allocator)
第2章 空间配接器(allocator)SGI STL的配置器与标准规范不同,其名称是alloc而非allocator,而且不接受任何参数。虽然SGI也定义一个符合部分标准、名为allocator的配置器,但SGI自己未使用它,也不建议使用。主要原因是效率不佳,只把C++的::operator new和::operator delete做一层包装。因此,在程序中:vector<int, std::原创 2017-08-25 20:12:02 · 248 阅读 · 0 评论 -
第4篇 关联式容器(associative)
关联式容器标准的STL关联式容器分为set(集合)和map(映射表)两大类,以及这两大类的衍生体multiset(多键集合)和multimap(多键映射表)。这些容器的底层机制均以RB-tree完成。SGI STL还提供了一个不在标准规格之列的关联式容器:hash table(散列表),以及以此为底层机制而完成的hash_set(散列集合)、hash_map(散列映射表)、hash_multiset原创 2017-09-07 21:01:46 · 361 阅读 · 0 评论 -
第3篇 序列式容器(sequence container)
常用的数据结构:array\list\tree\stack\queue\hash table\set\map…1 vector1.1 vector的实现技术,关键在于其对大小的控制以及重新配置时的数据移动效率。因为“配置新空间/数据移动/释放旧空间”是一个大工程。1.2 vector的迭代器提供的是Random Access Iterators。`typedef value_type* iterat原创 2017-08-31 17:05:56 · 923 阅读 · 0 评论 -
第5篇 迭代器
1 迭代器迭代器:迭代器(iterators)是一种抽象设计概念。Design Patterns对iterator模式定义如下:提供一种方法,使之能够依序巡防某个聚合物(容器)所含的各个元素,而不需暴露该聚合物的内部表达方式。1.1 迭代器(iterator)是一种smart pointer迭代器最重要的操作就是对 operator* 和 operator-> 进行重载工作。下面是一份简版的智能指针原创 2017-09-10 11:38:13 · 310 阅读 · 0 评论 -
第6篇 STL算法
C++——STL所有算法介绍STL算法部分主要由头文件,,组成。要使用 STL中的算法函数必须包含头文件,对于数值算法须包含,中则定义了一些模板类,用来声明函数对象。STL中算法大致分为四类: 1、非可变序列算法:指不直接修改其所操作的容器内容的算法。 2、可变序列算法:指可以修改它们所操作的容器内容的算法。 3、排序算法:包括对序列进行排序和合并的算法、搜索算法以及有序序列原创 2017-09-10 11:39:45 · 628 阅读 · 0 评论