随笔分类 - STL
摘要:本篇博客笔记顺序大体按照《C++标准程序库(第1版)》各章节顺序编排。--------------------------------------------------------------------------------------------13 以Stream Classes 完成输入...
阅读全文
摘要:本篇博客笔记顺序大体按照《C++标准程序库(第1版)》各章节顺序编排。--------------------------------------------------------------------------------------------11 Strings 字符串本章单独列出,讲述...
阅读全文
摘要:《C++标准程序库》笔记之二本篇博客笔记顺序大体按照《C++标准程序库(第1版)》各章节顺序编排。--------------------------------------------------------------------------------------------6. STL 容器...
阅读全文
摘要:本篇博客笔记顺序大体按照《C++标准程序库(第1版)》各章节顺序编排。--------------------------------------------------------------------------------------------2. C++及其标准程序库简介2.2-1注意:...
阅读全文
摘要:auto_ptr:唯一拥有权 智能指针(智能指针是一个对象)保证,无论在何种情形下,只要自己被摧毁,就一定连带释放其所指资源。而由于智能型指针本身就是区域变量,所以无论是正常退出,还是异常退出,只要函数退出,它就一定会被摧毁。 只有auto_ptr可以拿来当做另一个auto_ptr 的初值,普通指针
阅读全文
摘要:一、配接器 《Design Patterns》一书提到23个最普及的设计模式,其中对adapter样式的定义如下:将一个class的接口转换为另一个class 的接口,使原本因接口不兼容而不能合作的classes,可以一起运作。 1. 配接器概观与分类 STL 所提供的各种配接器中,改变仿函数接口者
阅读全文
摘要:一、仿函数(也叫函数对象)概观 仿函数的作用主要在哪里?从第6章可以看出,STL所提供的各种算法,往往有两个版本,其中一个版本表现出最常用(或最直观)的某种运算,第二个版本则表现出最泛化的演算流程,允许用户“以template参数来指定所要采行的策略”。以sort()为例,其第一版本是以operat
阅读全文
摘要:一、算法概观 以有限的步骤,解决逻辑或数学上的问题,这一专门科目我们称为算法。特定的算法往往搭配特定的数据结构,例如binary search tree(二叉搜索树)和 RB-tree 便是为了解决查找问题而发展出来的特殊数据结构。几乎可以说,特定的数据结构是为了实现某种特定的算法。本章所讨论的,是
阅读全文
摘要:在 红黑树详解 文章中,二叉搜索树具有对数平均时间的表现是构造在这样的假设下的:输入数据有足够的随机性。 本篇介绍的hashtable(散列表)的数据结构,在插入、删除、搜寻等操作上也具有“常数平均时间”的表现,而且这种表现是以统计数据为基础,不需仰赖输入元素的随机性。 1. hashtable 概
阅读全文
摘要:一、关联式容器 标准的STL关联式容器分为set(集合)/map(映射表)两大类,以及这两大类的衍生体multiset(多键集合)和 multimap(多键映射表)。这些容器的底层机制均以RB-tree(红黑树)完成。RB-tree也是一个独立容器,但并不开放给外界使用。 此外,SGI STL 还提
阅读全文
摘要:在介绍红黑树之前,有必要对树的概念以及相关理论作一个概述: 树 1. 树的导览 树由节点(Nodes)和 边(edges)构成。树有根节点(root),边(deges),父节点(parent),子节点(child),叶节点(leaf)。如果最多只允许两个子节点,即所谓的二叉树(binary tree
阅读全文
摘要:heap(隐式表述,implicit representation) 1. heap概述 : vector + heap算法 heap并不归属于STL容器组件,它是个幕后英雄,扮演priority queue的助手。顾名思义,priority queue允许用户以任何次序将任何元素推入容器内,但取出
阅读全文
摘要:一、容器概述与分类 1. STL容器即是将运用最广的一些数据结构实现出来。常用的数据结构有array, list, tree, stack, queue, hash table, set, map……等等。根据“数据在容器中的排列”特性,这些数据结构分为序列式和关联式两种。本篇讨论序列式容器。 这里
阅读全文
摘要:一、迭代器 1. 迭代器设计思维——STL关键所在 在《Design Patterns》一书中对iterator模式定义如下:提供一种方法,使之能够依序巡访某个聚合物(容器)所含的各个元素,而又无需暴露该聚合物的内部表达方式。 STL的中心思想在于:将数据容器(containers)和算法(algo
阅读全文
摘要:一、 空间配置器标准接口 参见《STL源码剖析》第二章-2.1。<memory>文件。 二、具备次配置力的SGI空间配置器 1. SGI STL的配置器与众不同,也与标准规范不同,其名称是alloc而非allocator,而且不接受任何参数(虽然SGI也定义有一个符合部分标准、名为sllocator
阅读全文
摘要:一、STL简介 1、STL(Standard Template Library,标准模板库)是C++标准库最主要和最重要的组成部分。其重要作用在于: (1)它可以用来创建动态增长和减小的数据结构; (2)它是类型无关的,因此具有很高的可复用性; (3)它在编译时而不是运行时进行数据类型检查,保证了类
阅读全文

浙公网安备 33010602011771号