STL 源码剖析
文章平均质量分 94
三公子Tjq
三少爷的剑:剑气纵横三万里,一剑光寒十九洲!
展开
-
《STL 源码剖析》——__type_traits源码剖析
迭代器iterators不仅可以萃取iterator类型,还可以萃取type_traits是一种抽象的设计概念,在《Design Patterns》书中对迭代器模式定义为:提供一种方法,使之能够依序访问某个聚合物(容器)所含的各个元素,而又无需暴露该聚合物的内部表达方式。可以参考博主之前写过的一篇迭代器模式文章C++设计模式——迭代器模式(iterator pattern)。可以看出,迭代器是一种行为类似智能指针(smart pointer)的对象,主要功能是对内容进行解引用和成员访问,因此设计迭代器主要原创 2021-04-04 17:27:51 · 575 阅读 · 0 评论 -
《STL 源码剖析》——迭代器iterators和traits编程技法
空间配置器alloc主要功能是对内存进行申请和初始化。其中申请内存采用两级配置器,初始化内存则用五个全局函数。其中两级配置器分别为第一级配置器(__malloc_alloc_template )、二级配置器(__default_alloc_template );五个函数(也可以说是内存处理的工具)分别是用于构造的construct()、用于析构的destruct()、uninitialzied_copy()、uninitialzied_fill()、uninitialzied_fill_n()。一般不会使原创 2021-04-04 15:34:25 · 377 阅读 · 0 评论 -
《STL 源码剖析》——空间配置器alloc
栈和队列是应用最多的数据结构之二,有数组实现和链表实现两种方式。当需要对容器做出限制,只允许一边插入和取出数据时,则需要用到栈。下面将总结数组实现的栈和阐述其原理。一、线性表——栈Stack1.1栈Stack定义栈是一种特殊的线性表,其插入(也称为入栈或压栈)和删除(也称为弹出或出栈)操作都在表的同一端进行;该插入和删除的端口称为栈顶(top),另一端称为栈底(bottom)。1.2栈的基本运算1.2.1基本运算(1) 初始化(构造一个空的栈)(2) 计算栈长度(栈中节点个数)(3) 插入节原创 2021-04-03 23:59:08 · 1279 阅读 · 7 评论