
STL
文章平均质量分 79
KangRoger
这个作者很懒,什么都没留下…
展开
-
STL中的仿函数
仿函数是行为类似函数的类或结构体,类或结构体重载了operator(),它比函数指针更加灵活易用。原创 2014-08-19 14:37:02 · 5425 阅读 · 0 评论 -
《STL源码剖析》---stl_multiset.h阅读笔记
STL中的set不允许键值重复,因此就有了multiset。multiset和set操作一样,功能一样,但是multiset允许键值重复,因此它们两个源代码几乎相同,只是在使用红黑树的插入操作时用的函数不一样而已。原创 2014-08-17 08:07:52 · 1769 阅读 · 1 评论 -
《STL源码剖析》---stl_map.h阅读笔记
map是STL中的标准关系容器,它存储的元素时pair,拥有键值key和实值value。按照键值key存储到红黑树中,用红黑树提供的函数操作map。原创 2014-08-16 11:46:49 · 5346 阅读 · 1 评论 -
《STL源码剖析》---stl_multimap.h阅读笔记
multimap和map的关系和multiset和set关系一样,multimap允许有重复的键值,它在使用底层数据结构红黑树用,插入操作用的是insert_equal,而不是insert_unique。原创 2014-08-17 11:39:54 · 1736 阅读 · 0 评论 -
《STL源码剖析》---stl_tree.h阅读笔记
STL中,关联式容器的内部结构是一颗平衡二叉树,以便获得良好的搜索效率。红黑树是平衡二叉树的一种,它不像AVL树那样要求绝对平衡,降低了对旋转的要求,但是其性能并没有下降很多,它的搜索、插入、删除都能以O(nlogn)时间完成。平衡可以在一次或者两次旋转解决,是“性价比”很高的平衡二叉树。原创 2014-08-15 21:14:23 · 6188 阅读 · 0 评论 -
《STL源码剖析》---stl_set.h阅读笔记
SET是STL中的标准容器,SET里面的元素会根据键值自动排序,它底层数据结构是红黑树。原创 2014-08-16 11:11:49 · 2050 阅读 · 0 评论 -
《STL源码剖析》---stl_hashtable.h阅读笔记
哈希表/散列表hash table在插入、删除、查找上具有“平均常数时间复杂度”O(1),hash table原理大部分都了解,具体实现还是要看其源代码。原创 2014-08-17 18:37:57 · 3632 阅读 · 1 评论 -
《STL源码剖析》---stl_pair.h阅读笔记
pair是STL中的模板类型,它可以存储两个元素,它也被称作“对组”。pair没有什么强大功能函数,其源代码很简单。原创 2014-08-17 22:26:28 · 2579 阅读 · 5 评论 -
《STL源码剖析》---stl_algobase.h阅读笔记
STL标准中没有区分基本算法或复杂算法,单SGI把常用的一些算法定义在<stl_algobase.h>只中。在这些算法中,比较值得学习的是copy函数,它“无所不用其极”的改善效率。原创 2014-08-19 10:48:34 · 2604 阅读 · 0 评论 -
《STL源码剖析》---stl_hash_set.h阅读笔记
STL只规定接口和复杂度,对于具体实现不作要求。set大多以红黑树实现,但STL在标准规格之外提供了一个所谓的hash_set,以hash table实现。hash_set的接口,hash_table都提供了,所以几乎所有的hash_set操作都是直接调用hash_table的函数而已。除了hash_set,还有hash_multiset,它们两个的关系就像set和multiset的关系,一个不允许键值重复,另外一个允许键值重复。其他实现一样。原创 2014-08-18 09:03:18 · 1972 阅读 · 0 评论 -
《STL源码剖析》---stl_deque.h阅读笔记(2)
《STL源代码剖析》的双端队列的源代码剖析。原创 2014-08-13 23:15:21 · 2428 阅读 · 0 评论 -
《STL源码剖析》---_auto_ptr.h阅读笔记
auto_ptr是常用的智能指针,其实现很简单,源代码也很短,但是中间有个代理类auto_ptr_ref用的很巧妙,值得学习。原创 2014-09-27 10:57:09 · 2599 阅读 · 0 评论 -
《STL源码剖析》---stl_list.h阅读笔记
STL中链表list是一个常用的容器。list在内存中是不连续的双向链表,且是环形的。要了解链表细节是如何操作的话,阅读STL关于链表的代码是最好的方法。原创 2014-08-12 23:35:16 · 2958 阅读 · 3 评论 -
《STL源码剖析》---stl_stack.h阅读笔记
Stack栈是常用的一个FILO数据结构。栈在STL是靠deque来实现的。原创 2014-08-14 09:50:22 · 1631 阅读 · 0 评论 -
《STL源码剖析》---stl_hash_map.h阅读笔记
SGI STL中的map底层以红黑树实现,hash_map以hash table实现。hash_map不允许插入重新键值,hash_multimap允许插入重复键值。这两者的关系就像map和multimap的关系。底层的hash table提供的大部分的操作,hash_map(hash_multimap)大部分都是直接调用hash table的函数。原创 2014-08-18 16:27:33 · 2276 阅读 · 0 评论 -
《STL源码剖析》---stl_numeric.h阅读笔记
STL中的数值算法。包括累加、乘幂、计算差值。原创 2014-08-18 17:41:03 · 1978 阅读 · 1 评论 -
《STL源码剖析》---stl_alloc.h阅读笔记
侯捷翻译的《STL源码剖析》stl_alloc.h阅读笔记。讲解的内存的配置与释放。原创 2014-08-11 00:13:15 · 5008 阅读 · 0 评论 -
VS2010编译调试STL源代码
平台环境:windows 7 32位+VS2010+STL源代码原创 2014-08-10 14:35:38 · 6433 阅读 · 3 评论 -
《STL源码剖析》---stl_construct.h阅读笔记
《STL源码剖析》---stl_construct.h阅读笔记,主要讲解的是对象的构造与析构。原创 2014-08-09 23:11:57 · 2279 阅读 · 0 评论 -
《STL源码剖析》---stl_iterator.h阅读笔记
讲解STL中迭代器的设计思想和设计的代码。其中用到了Traits编程技法和Partial Specializetion(偏特化)。原创 2014-08-11 17:51:26 · 4506 阅读 · 0 评论 -
《STL源码剖析》---stl_uninitialized阅读笔记
这节讲解在已分配但未初始化的空间上构造对象,这节不同于stl_construct.h(它是构造一个对象),这节讲解的内容在《STL源代码剖析》中是“内存处理基本工具”,我的理解是初始化一段内存.原创 2014-08-11 11:21:04 · 2185 阅读 · 0 评论 -
《STL源码剖析》---stl_vector.h阅读笔记
在STL中,最常用的就是容器,最常用的容器就是vector了。想要了解vector如何动态增长等特性,看一下stl中vector的代码吧!原创 2014-08-12 16:16:28 · 4695 阅读 · 1 评论 -
《STL源码剖析》---stl_deque.h阅读笔记(1)
双端队列deque是容器的一种,借助《STL源代码剖析》讲解双端队列的内存结构以及基本操作。原创 2014-08-13 23:08:32 · 1934 阅读 · 0 评论 -
《STL源码剖析》---stl_heap.h阅读笔记
Heap堆是常用的数据结构,Heap中也可以存放元素。但是STL中并没有提供Heap容器,只是提供了关于Heap操作的算法。原创 2014-08-14 11:47:39 · 2922 阅读 · 0 评论 -
《STL源码剖析》---stl_slist.h阅读笔记
slist是单向链表,不是STL标准,且功能不如list,但是slist占用空间小,某些操作代价更小。原创 2014-08-14 17:49:28 · 2517 阅读 · 6 评论 -
《STL源码剖析》--next_permutation函数
STL中提供了2个计算排列组合关系的算法。分别是next_permucation和prev_permutaion。next_permutation是用来计算下一个(next)字典序排列的组合,而prev_permutation用来计算上一个(prev)字典序的排列组合。这小节看一下next_permutation原创 2015-08-13 23:13:30 · 2379 阅读 · 0 评论