STL源码剖析
文章平均质量分 86
继续微笑lsj
眼界决定未来
展开
-
根据allocator的标准接口,编写的功能、接口不齐全的allocator
#ifndef MYALLOC_H #define MYALLOC_H #include//for placement new #include//for ptrdiff_t size_t #include//for exit #include//for unit_Max #include namespace JJ{ template inline T* _alloc翻译 2013-03-31 20:12:07 · 1315 阅读 · 0 评论 -
STL源码笔记之型别提取技法(1)
STL源码利用Traits类来萃取,模板参数一些型别,我觉得蛮不错,做个笔记。 1.利用function template的参数推导机制 template Void func_impl(I iter,T t) { T tmp;// }; template Void func_impl(I iter) { func_impl(iter,*iter); } int main()原创 2013-07-12 19:58:01 · 1790 阅读 · 0 评论 -
STL源码笔记之空间配置器
整个STL的操作对象都放在容器之内,而容器一定是需要空间配置器以置放资料。空间配置器需要提供如下接口(下面只列出了主要的接口) template class allocator{ public: typedef T value_type; typedef T* pinter; typedef const T* const_pointer; ty原创 2013-06-30 19:54:06 · 1715 阅读 · 0 评论 -
STL源码笔记之序列式容器
所谓序列式容器,其中的元素都可序,但未必有序。 序列式容器包括array(内建)、vector、heap、priority_queue、list、slist、deque、stack(配接器)和queue(配接器)。 容器中大量应用前面用于构造的construct和用于析构的distroy以及uninitialized_copy()、uninitialized_fill()和unini原创 2013-07-17 19:49:34 · 1937 阅读 · 0 评论 -
关联容器
顺序容器:vector、list、deque、queue、stack、slist。 关联容器:map、set、multiset、multimap、hashtable(散列表),以及以hashtable为底层机制完成的hash_set(散列集合)/hash_map(散列映射表)/hash_multiset(散列多键集合)/hash_multimap(散列多键映射表)。原创 2013-08-14 00:01:08 · 1711 阅读 · 0 评论 -
STL源码笔记之型别提取技法(2)
1.iterator_category (1)Input Iterator:这种迭代器所指的对象,不允许外接改变,只读。 (2)Output Iterator:只写。 (3)Forward Iterator:允许“写入型”算法在此迭代器所形成的区间上进行读写操作。 (4)Bidirectional Iterator:可双向移动。某些算法需要逆向走访某原创 2013-07-12 22:16:56 · 1470 阅读 · 0 评论 -
vector 释放内存 swap
http://blog.csdn.net/jerryjbiao/article/details/7389233 相信大家看到swap这个词都一定不会感到陌生,甚至会有这样想法:这不就是简单的元素交换嘛。的确,swap交换函数是仅次于Hello word这样老得不能老的词,然而,泛型算法东风,这个小小的玩意儿却在C++ STL中散发着无穷的魅力。本文不仅详细地阐述STL泛转载 2014-11-07 12:02:45 · 1050 阅读 · 0 评论