//---------------------------15/04/03---------------------------- /* 配接器概述: 1:adapter是一种设计模式:将一个class的接口转换为另一个class的接口,使得原本因接口不兼容而 不能合作的classes可以一起工作. 2:改变仿函数接口的,称为function adapter,改变容器接口的,称为container adapter, 改变迭代器接口的,称为iterator adapter. 3:container…
//---------------------------15/04/05---------------------------- /* 空间配置器概述: 1:new操作包含两个阶段操作 1>调用::operator new配置内存(底层使用malloc来申请内存). 2>调用函数的构造函数,构造对象内容. delte和new一样,先调用析构函数,再调用::operator delete释放内存. 2:为了效率,stl把两个阶段分开来. 1>内存配置操作: alloc::allocate…
//---------------------------15/04/01---------------------------- //仿函数是为了算法而诞生的,可以作为算法的一个参数,来自定义各种操作,比如比大小,返回bool值,对元素进行操作等 //虽然这些函数也能实现,但是如果配合配接器(adapter)可以产生更灵活的变化. //为了使对象像函数一样,就必须重载operator() //unary_function template<class Arg, class Result> s…
//---------------------------15/03/24---------------------------- //hashtable { /* 概述: sgi采用的是开链法完成hashtable的,也就是用链表来存储映射到相同位置的元素. */ //node(节点) template<class Value> struct __hashtable_node { __hashtable_node* next; Value val; }; //bucket维护的linked…
// //  set map.cpp //  笔记 // //  Created by fam on 15/3/23. // // //---------------------------15/03/23---------------------------- //set { /* set概述: 1:所有的元素都会被自动排序, 2:所有的元素只有"键"没有"值" 或者说他们的"值"就是"键" 3:不允许出现两个相同的键值 4…
// //  RB_tree_STL.cpp //  笔记 // //  Created by fam on 15/3/21. // // #include "RB_tree_STL.h" //---------------------------15/03/21---------------------------- RB_tree { /* 一个由上而下程序: 为了避免父子节点皆为红色的情况持续向上层发展,形成处理时效上的瓶颈,可以从上向下处理, 假设新增的节点为a,那就沿着a的路…
// //  heap.cpp //  笔记 // //  Created by fam on 15/3/15. // // //---------------------------15/03/15---------------------------- //heap { /* heap概述: heap并不是stl的容器,只是priority queue(优先队列)的助手 它允许用户以任意顺序插入容器,但是取出是,总是取出优先级最高的元素 heap用的是很常见的堆结构,用数组来表示,采用堆排序…
//---------------------------15/03/27---------------------------- //算法 { /* 质变算法:会改变操作对象之值 所有的stl算法都作用在由迭代器[first,last)所标示出来的区间上.质变算法 就是 运算过程会更改区间内的元素内容 非质变算法:和质变算法相反 */ /* stl算法的一般形式 1>所有的泛型算法的前两个参数都是一对迭代器,通常称为first和last,用以标示算法的操作区间 2>stl习惯采用前闭后开区间…
//****************************基本算法***************************** /* stl算法总览,不在stl标准规格的sgi专属算法,都以 *加以标记 算法名称              算法用途         质变                   所在文件 accumulate          元素累计            否                   <stl_numeric.h> adjacent_differenc…
//---------------------------15/03/22---------------------------- //一直好奇KeyOfValue是什么,查了下就是一个和仿函数差不多的东西,在第7章会详细介绍 //现在只知道KeyOfValue()可以构造一个类调用他的operator()可以得到一个value的key //允许重复的插入 template<class Key,class Value, class KeyOfValue,class Compare, class…