摘要: 在前两节介绍了迭代器的五个相应类型,并讲述如何利用traits机制提取迭代器的类型,但始终是把iteartor_traits类分割开来讨论,这影响我们的理解,本节将给出iteator的部分源码,里面涵盖了整个iteartor_traits泛化版本、偏特化版本以及一些算法的完整代码。重新把先前讲的知识 阅读全文
posted @ 2019-10-21 20:03 羽园原华 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 最后一个迭代器的相应类型就是iterator_category,就是迭代器本身的类型,根据移动特性与实行的操作,迭代器被分为了五类: Input Iterator:这种迭代器所指的对象,不允许外界改变。只读(read only)。 Output Iterator:唯写(write only) For 阅读全文
posted @ 2019-10-21 20:01 羽园原华 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 在算法中运用迭代器时,很可能用到其相应类型。什么是相应类型?迭代器所指对象的类型便是其中一个。我曾有一个错误的理解,那就是认为相应类型就是迭代器所指对象的类型,其实不然,相应类型是一个大的类别,迭代器所指对象的类型只是里面的其中一个。后面会讨论到相应类型的另外几种。 假设算法需要声明一个变量,以“迭 阅读全文
posted @ 2019-10-21 19:59 羽园原华 阅读(269) 评论(0) 推荐(0) 编辑
摘要: STL的中心思想在于:将数据容器与算法分开,独立设计,再用一帖粘着剂将它们撮合在一起。而扮演粘着剂这个角色的就是迭代器。容器和算法泛型化,从技术角度来看并不困难,C++的模板类和模板函数可分别达成目标,但如何设计出两者之间良好的粘着剂,才是大难题。 我们可以来尝试一下自己设计一个迭代器,看途中会遇到 阅读全文
posted @ 2019-10-21 19:56 羽园原华 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 原题(Medium): 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 思路:BFS 看到这题的时候,我思索了一会才得出要用队列BFS方式记录同层结点这个结论,脑子着实太迟钝了...... 想出来后就立马开始写代码: 有一说一,这段代码写得甚是难看,说明我的 阅读全文
posted @ 2019-10-18 11:17 羽园原华 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 原题(Medium): 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 这题我的第一感觉就是深度搜索,比较根结点与左子结点和右子结点的值,根据 阅读全文
posted @ 2019-10-18 11:16 羽园原华 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 原题(Medium): 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 我们或许可以先从数学的角度去思考这题,给定一个整数n,我们可以试着从根结点出发,此时根结点占去一个结点数,结点总数剩下n-1,那么剩下的结点数我们可以先考虑两种简单的情况,一是全部放左子树,二是全部放右 阅读全文
posted @ 2019-10-18 11:09 羽园原华 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 原题(Medium): 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 思路:回溯 建立一个xy坐标系,通过4个坐标实现在网格中上下左右地逐格移动 阅读全文
posted @ 2019-10-18 11:08 羽园原华 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 原题(Medium): 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 思路一:回溯 深度优先,从单一数组成员出发,以下标为剪枝条件,即不能搜索时不能小于当前下标,这防止了重复子集的出现,且途中把遇到的元素都加入临时数组,并把临时数组加入 阅读全文
posted @ 2019-10-18 11:06 羽园原华 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 上节在学习第二级配置器时了解了第二级配置器通过内存池与自由链表来处理小区块内存的申请。但只是对其概念进行点到为止的认识,并未深入探究。这节就来学习一下自由链表的填充和内存池的内存分配机制。 refill()函数——重新填充自由链表 前情提要,从上节第二级配置器的源码中可以看到,在空间配置函数allo 阅读全文
posted @ 2019-10-13 16:17 羽园原华 阅读(754) 评论(0) 推荐(0) 编辑