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