stl_slist.h : slist:单链表模板容器,; _Slist_node_base:单链表基类,只一个指向_Slist_node_base类型的_M_next成员指针,以表示指向下一个node节点; 一些辅助工具函数: __slist_make_link:在指定节点prev_node后插入... ...
分类:
其他好文 时间:
2019-10-10 12:59:35
阅读次数:
88
utility: stl_relops.h : 内部提供了重载模板operator!=、operator>、operator=,而这几个模板函数内部使用到了operator==以及operator其中T*为 申请到的空间地址,第二个参数为实际分配到的空间大小;最大可申请大小为INT_MAX / si... ...
分类:
其他好文 时间:
2019-10-10 12:58:02
阅读次数:
93
stl_construct.h : 提供多种构造器、销毁器模板函数; 构造器construct提供了给定值构造和默认构造方式,通过调用重载函数_Construct实现; 销毁器destroy提供了销毁指针和迭代器的方式,通过调用重载函数_Destroy实现; _Construct:通过“放置”new... ...
分类:
其他好文 时间:
2019-10-10 12:56:57
阅读次数:
138
stl_exception.h : 异常处理,通过宏提供可继承于标准exception或简易异常基类_Exception作为整个STL的异常基类; stdexcept : __Named_exception命名异常基类,继承于stl_exception.h中的异常基类,_M_name:最大256字节... ...
分类:
其他好文 时间:
2019-10-10 12:49:12
阅读次数:
89
stl_vector.h : vector:可随机访问元素的序列容器,从后插入或删除在常量时间内完成,从首部或中间则需线性时间内完成; _Vector_alloc_base:vector分配基类模板;模板参数分别为数据类型T,分配器类型_Allocator,以及一个bool标识_IsStatic(用... ...
分类:
其他好文 时间:
2019-10-10 12:48:58
阅读次数:
107
stl_list.h : list:一个可从任意位置快速插入和删除元素的双向链表,可在常数时间内完成,但是取数据、查找等则需要线性时间; _List_node_base:链表节点基类struct,仅包含_M_next、_M_prev成员,其分别为指向当前节点基类类型的下一个、上一个节点的指针; _L... ...
分类:
其他好文 时间:
2019-10-10 12:47:46
阅读次数:
68
stl_bvector.h : bit_vector 重声明为vector即使用alloc作为内存分配器,其为非模板类,__BVECTOR也即vector为模板类,若使bit_vector重声明为__BVECTOR则也可为模板类; 相比vector,其可保持一个位一个元素而不是至少一个字节一个元素;... ...
分类:
其他好文 时间:
2019-10-10 12:45:22
阅读次数:
102
stl_deque.h : deque:一种具有双端插入和删除,可随机访问元素的容器,从首部或后插入或删除在常量时间内完成,从中间则需线性时间内完成; __deque_buf_size:获取队列节点缓冲区大小(工具函数),当数据元素类型字节size小于512时则为512/size,否则为1,(意味着... ...
分类:
其他好文 时间:
2019-10-10 12:45:05
阅读次数:
74
defalloc.h : 默认分配器allocator: 早期专用于HP的默认分配器,目前是不被赞成使用的; 仅提供了allocator模板简单封装,重声明(或类型外抛)一些必要的类型Type,此外提供申请和释放内存接口(底层直接使用全局::operator new和::operator delet... ...
分类:
其他好文 时间:
2019-10-10 12:39:17
阅读次数:
100
1.unorderd_map自定义键 自定义类型 1、由于unordered_map是采用哈希实现的,对于系统的类型int, string等,都已经定义好了hash函数,所以如果我们引入新的自定义类型的话,系统并不知道如何去计算我们引入的自定义类型的hash值,所以我们就需要自己定义hash函数,告 ...
分类:
其他好文 时间:
2019-10-10 00:26:58
阅读次数:
115