前面已经介绍了全局函数construct()和destory(),分别完成指定内存地址上的对象构造和析构操作。下面主要是介绍空间配置器中关于空间配置和释放的操作。STL中空间配置和释放由负责。SGI对此的设计哲学为: 向system heap要求空间 考虑多线程(multi threads)状态 考 ...
分类:
其他好文 时间:
2018-01-31 01:09:31
阅读次数:
176
SGI虽然定义了名为allocator的配置器,但从未使用过。SGI的allocator只是包装了C++的::operatpor new和::operator delete,效率不高。STL中内存配置操作由alloc::allocate()负责,内存释放操作由alloc::deallocate()负 ...
分类:
其他好文 时间:
2018-01-30 21:15:56
阅读次数:
174
空间配置器(allocator)这个概念在阅读源码之前我根本没有听过,原以为内存分配都是使用new和delete运算符(注意和operator new、placement new、operator delete以及placement delete不同)。在实际使用STL编程时也很少会遇到自己去实现一 ...
分类:
其他好文 时间:
2018-01-30 00:23:15
阅读次数:
172
STL源码剖析 虽然上面这本书出版的时间比较早,但也是一本了解c++ STL比较好的书. 看完这本书后我自己写了一个小型的STL,还有部分其他的数据结构.改进 了部分算法和容器,获得了超过vs2015中自带的STL的性能. QMJSTL 其中包含部分数据结构的设计和某些算法的证明,可以让人更容易理解 ...
分类:
编程语言 时间:
2017-12-31 10:55:36
阅读次数:
190
摘要: 摘要: 技术在于交流、沟通,本文为博主原创文章转载请注明出处并保持作品的完整性 在前面我介绍过一次tuple,今天在书上也看到了tuple,那就在写一次吧. tuple(元组),他的内部可以放任意类型的变量(有点类似结构体),前面介绍过它的递归继承,这次直接看基本使用吧 1.创建和取出元素 ...
分类:
其他好文 时间:
2017-10-16 02:14:14
阅读次数:
168
【技术栈】 算法(海量数据处理) C++(STL源码&对象模型&反汇编知识&多态的实现原理) Linux(多进程同步、I/O模型、服务器架设) 系统编程(apue) socket编程(unp) 网络:TCP/UPD/HTTP(卷1) 底层(CSAPP、Linux内核设计与实现) shell/pyth ...
分类:
其他好文 时间:
2017-09-28 00:33:01
阅读次数:
164
阅读了Alexander大神的SGI STL源码,膜拜,很高质量的源码,获益匪浅。温故而知新!下文中所有STL如无特殊说明均指SGI版本实现。 STL 内存配置器 STL对内存管理最核心部分我觉得是它将C++对象创建过程分解为构造、析构和内存分配、释放!摆脱了由于频繁调用new或malloc函数向操 ...
分类:
其他好文 时间:
2017-09-17 01:34:32
阅读次数:
250
如果有连续空闲的几天,其实可以找原书进行阅读,毕竟这里的是缩略的内容,和原版中的举例比起来这里的大部分内容只是对规则的总结。 但是要是说C++有什么特殊的科技,STL确实是其中之一,很多人评价STL源码写的像屎一样,又长又绕是真的,不过初衷可能是为了让大多数不去看源码人愉快的使用吧。 条款11:理解 ...
分类:
其他好文 时间:
2017-08-24 21:35:13
阅读次数:
221
SGI源码download,《stl源码剖析》里展示了vector的部分源码: stl里的string menber types 里含有的value_type等也是类型别名,迭代器也是。如果是用户自定义一个string, T,T*的写法明显比value_type、pointer更方便。 ...
分类:
其他好文 时间:
2017-08-07 20:45:32
阅读次数:
142
目录: 第二章 空间适配器 第三章 迭代器 第四章 序列式容器(vector,list,deque,stack,heap,priority_queue,slist) 第五章 关联式容器(树的算法 + RB_tree ,set,map,hashtable) 第六章 算法 第七章 仿函数 第八章 适配器 ...
分类:
其他好文 时间:
2017-07-27 11:35:16
阅读次数:
226