码迷,mamicode.com
首页 >  
搜索关键字:stl源码剖析    ( 238个结果
LeetCode | 215. 数组中的第K个最大元素
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 ...
分类:编程语言   时间:2019-11-03 18:13:10    阅读次数:75
STL 之 operator new 函数
在STL源码剖析中有提到operatornew这个函数,然后也有说道new的下面会调用operatornew,博主觉得这段话有问题,原因有二:1、operator是操作符的关键字,比如我们要重载一个操作符,我们的写法肯定是operatorxxx(xxx,xxx....),所以书中提到的调用operatornew,我并不赞同,我觉得new等同于operatornew2、在C/C++里面,调用一般是涉
分类:其他好文   时间:2019-10-31 18:32:22    阅读次数:94
STL源码剖析——算法#1 内存处理基本工具
我们在学习序列式容器时,我们经常会遇到这三个函数:uninitialized_copy、uninitialized_fill、uninitialized_fill_n。在那时我们只是仅仅知道这些函数的功能,至于它们是如何实现的,我们并没有深究。在这节,我们花点时间摘下这几个函数的面具,看看它们不为人 ...
分类:编程语言   时间:2019-10-29 13:31:10    阅读次数:102
STL源码剖析——序列式容器#2 List
list就是链表的实现,链表是什么,我就不再解释了。list的好处就是每次插入或删除一个元素,都是常数的时空复杂度。但遍历或访问就需要O(n)的时间。 List本身其实不难理解,难点在于某些功能函数的实现上,例如我们会在最后讨论的迁移函数splice()、反转函数reverse()、排序函数sort ...
分类:其他好文   时间:2019-10-26 17:35:16    阅读次数:103
STL源码剖析——Iterators与Traits编程#5 __type_traits
上节给出了iterator_traits以及用到traits机制的部分函数的完整代码,可以看到traits机制能够提取迭代器的特性从而调用不同的函数,实现效率的最大化。显然这么好的机制不应该仅局限于在STL里面使用,在前某一节中我们也有说到,traits机制能够萃取类的特性,而这个类分为两个类别,一 ...
分类:其他好文   时间:2019-10-21 21:01:41    阅读次数:96
STL源码剖析——iterators与trait编程#3 iterator_category
最后一个迭代器的相应类型就是iterator_category,就是迭代器本身的类型,根据移动特性与实行的操作,迭代器被分为了五类: Input Iterator:这种迭代器所指的对象,不允许外界改变。只读(read only)。 Output Iterator:唯写(write only) For ...
分类:其他好文   时间:2019-10-21 20:43:46    阅读次数:120
STL源码剖析——iterators与trait编程#2 Traits编程技法
在算法中运用迭代器时,很可能用到其相应类型。什么是相应类型?迭代器所指对象的类型便是其中一个。我曾有一个错误的理解,那就是认为相应类型就是迭代器所指对象的类型,其实不然,相应类型是一个大的类别,迭代器所指对象的类型只是里面的其中一个。后面会讨论到相应类型的另外几种。 假设算法需要声明一个变量,以“迭 ...
分类:其他好文   时间:2019-10-21 20:42:58    阅读次数:113
STL源码剖析——iterators与trait编程#1 尝试设计一个迭代器
STL的中心思想在于:将数据容器与算法分开,独立设计,再用一帖粘着剂将它们撮合在一起。而扮演粘着剂这个角色的就是迭代器。容器和算法泛型化,从技术角度来看并不困难,C++的模板类和模板函数可分别达成目标,但如何设计出两者之间良好的粘着剂,才是大难题。 我们可以来尝试一下自己设计一个迭代器,看途中会遇到 ...
分类:其他好文   时间:2019-10-21 20:40:56    阅读次数:102
STL源码剖析——iterators与trait编程#4 iterator源码
在前两节介绍了迭代器的五个相应类型,并讲述如何利用traits机制提取迭代器的类型,但始终是把iteartor_traits类分割开来讨论,这影响我们的理解,本节将给出iteator的部分源码,里面涵盖了整个iteartor_traits泛化版本、偏特化版本以及一些算法的完整代码。重新把先前讲的知识 ...
分类:其他好文   时间:2019-10-21 20:33:50    阅读次数:80
stl源码剖析-序列式容器 之 list
较久以前学过数据结构,对链表的定义和行为结构有过了解,所以阅读源码学习stl定义的list容器的并不算吃力。 list与vector都是两个常用的容器,与vector不同,list不是连续线性空间的,list是一个双向链表。每次插入或者删除一个元素,将配置或者释放一个元素空间,因此,list对于空间 ...
分类:其他好文   时间:2019-10-20 16:10:15    阅读次数:69
238条   上一页 1 2 3 4 ... 24 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!