摘要: 刷知乎看到了这个题目: 第一反应,这个写法有点太奇怪了吧...不过静下心来,还是可以解释一下的。 这个写法对于我这个小白来说,还是挺难认出来的...看了大神的意见,可读性比较好的写法,应该是用类型别名 这样可读性就好了许多,也比较容易理解了。ptr是一个函数,参数列表为(int,int),返回类型为 阅读全文
posted @ 2017-09-12 21:39 luStar 阅读(277) 评论(0) 推荐(1) 编辑
摘要: 右值引用和移动操作是C++11提出的新概念,通过这些操作,可以降低拷贝操作带来的消耗。先来简单介绍一下左值和右值。 左值一般指的是一个对象,或者说是一个持久的值,例如赋值的返回值、下标操作、解引用以及前置递增等。 右值是一个短暂的值,比如一个表达式的求值结果、函数返回值以及一个字面值等。 为了区分, 阅读全文
posted @ 2017-09-12 20:59 luStar 阅读(2972) 评论(0) 推荐(0) 编辑
摘要: 对于初始化的问题,我之前一直傻傻分不清。有关初始化以及赋值的区别也是一问题,这次回过头来看,配合<<CSAPP>>的内容,对初始化有了一些新的认识。 声明: 在环境/上下文中指定一个变量的名字。也就是说,声明仅仅是让编译器知道,而没有实际分配空间。 初始化:给一个声明后尚未初始化的变量一个有意义的初 阅读全文
posted @ 2017-08-29 20:17 luStar 阅读(18734) 评论(0) 推荐(0) 编辑
摘要: 最近在重新看<<C++ Primer>>,第一遍的时候const和constexpr看得并不太懂,这次又有了些更新的理解,当然可能仍然有许多不对的地方... 首先,const限定符即“常量”,一旦使用了const,那么对象的值不能再改变,比如: const int i=1; 同时,const修饰的变 阅读全文
posted @ 2017-08-25 21:32 luStar 阅读(547) 评论(2) 推荐(1) 编辑
摘要: 快速排序是最经典和常用的排序算法了,已经有不计其数的博客0 0 首先介绍下快速排序的原理。快速排序的基础是基于这样的事实:在一个序列中,如果一个节点前面的所有元素都不大于它,后面的所有元素都不小于它,那么当整个序列达到有序状态时,这个节点的位置保持不变。符合这样条件的节点,称为轴点(pivot)。 阅读全文
posted @ 2017-08-19 11:27 luStar 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 这几天有点抵触情绪,看过了快速排序还有一些别的东西,但是一点都不想写有点复杂的代码0 0拖到了今天终于写了前几天就应该自己写一下的堆排序,完全用C语言写的,下面把代码贴一下。很多地方写得并不好,不过已经经过了测试,可以正确运行。 建堆是最为关键的环节,可以说堆建好了才能开始进行排序。这里为了保持高效 阅读全文
posted @ 2017-08-16 20:31 luStar 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 二叉堆是一种优先级队列(priority queue)。搜索树维护了全部数据结构的有序性,而在我们不需要得知全局有序,仅仅需要全局的极值时,这样是一种没有必要的浪费。根据对象的优先级进行访问的方式,称为循优先级访问(call-by-priority)。优先级队列本身并不是一个队列结构,而是根据优先级 阅读全文
posted @ 2017-08-11 09:26 luStar 阅读(2955) 评论(0) 推荐(0) 编辑
摘要: 突然想自己写个桶排序,然后做课后题又发现了计数排序,觉得挺有趣的。不过书上都没有给代码,所以就自己写了一下代码,超级烂0 0下面先简单介绍下这两种排序 桶排序 桶排序,就是根据散列的思想进行数据的排序。假设有M个桶,采用最简单的hash(key)=key,这样无需比较,就可以把数存入相应的桶中。针对 阅读全文
posted @ 2017-08-09 08:43 luStar 阅读(2496) 评论(0) 推荐(0) 编辑
摘要: 散列表(hashtable)是一种高效的词典结构,可以在期望的常数时间内实现对词典的所有接口的操作。散列完全摒弃了关键码有序的条件,所以可以突破CBA式算法的复杂度界限。 散列表 逻辑上,有一系列可以存放词条的单元(桶)组成。各个桶按照逻辑次序,在物理上也应当是连续的,因而,可以采用数组来实现,散列 阅读全文
posted @ 2017-08-08 17:39 luStar 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 词典,顾名思义,就是通过关键码来查询的结构。二叉搜索树也可以作为词典,不过各种BST,如AVL树、B-树、红黑树、伸展树,结构和操作比较复杂,而且理论上插入和删除都需要O(logn)的复杂度。 在词典中,key和value的地位相同,支持新的循值访问(call by value)的方式。因为词典的访 阅读全文
posted @ 2017-08-07 11:51 luStar 阅读(2804) 评论(0) 推荐(0) 编辑