随笔分类 -  C++ & 算法

卡特兰数
摘要:卡特兰数的递推式: h(0) = 1, h(1) = 1; h(n) = h(0)*h(n-1) + h(1)*h(n-2) + ... h(n-1)*h(0);已知有n个元素,以及一个长度无限的栈,那么不同的出栈序列的个数就是h(n),证明如下:将n个元素按某种顺序排列,设x为最后一个出栈的元素,... 阅读全文

posted @ 2015-05-10 21:57 远近闻名的学渣 阅读(253) 评论(0) 推荐(0)

头文循环引用问题
摘要:事情的经过是这样的,有两个头文件a.h, b.h。在b.h中声明了一个class A,然后需要在a.h中使用b.h中的class A。一般只在a.h中加一句#include "b.H"就可以了,但是如果一时脑残在b.h里也加了一句#include "a.h"的话,就会报错unkonwn typena... 阅读全文

posted @ 2015-05-02 23:38 远近闻名的学渣 阅读(167) 评论(0) 推荐(0)

全局变量在C,C++中的区别
摘要:1,非const全局变量在C中,应该在一个.c文件中定义int i = 9;在头文件中声明extern int i;这么做非常ok。但是万一手残没有定义,只在头文件中写了一个 int i;依旧不会出错,也不会重定义。甚至在一个文件中这样int i; int i; int i; int i;int m... 阅读全文

posted @ 2015-04-21 10:41 远近闻名的学渣 阅读(277) 评论(0) 推荐(0)

头文件中应该注意的一些小问题
摘要:首先应该注意:c/c++ 中的头文件仅仅是在#ifdef等控制下简单文本替换,头文件保护只是负责不让头文件被多次包含而已。所以:1,不要在头文件中使用using NameSpaceXX::xx;以及using namespace xx;这样在包含该头文件的文件里都会引入奇怪的声明,名字冲突污染什么的... 阅读全文

posted @ 2015-04-21 10:07 远近闻名的学渣 阅读(171) 评论(0) 推荐(0)

gdb的一些操作
摘要:1, 在编译的时候加入-g选项,即调试信息2, gdb -tui -a.out 开始调试,tui可以同时显示代码3,gdb支持tab的指令补全4, stepi,nexti 为单步机器指令,step,next为单步执行5, disas。。。查看汇编代码5, print 查看各种东西6, print x... 阅读全文

posted @ 2015-04-08 21:27 远近闻名的学渣 阅读(143) 评论(0) 推荐(0)

g++ 关闭构造函数优化
摘要:c++ 标准中有规定编译器可以跳过拷贝/移动构造函数而直接创造对象,只要此时的拷贝/移动构造函数是可访问的。这个操作可以减少临时量所带来的开销,比如string s = "123";本来应该的步骤为string _temp("123"); //将const char *转换为stringstring... 阅读全文

posted @ 2015-04-08 21:21 远近闻名的学渣 阅读(1260) 评论(0) 推荐(1)

拷贝控制
摘要:以class Foo为例1.默认构造函数即不需要任何参数的构造函数,即Foo()若我们没有自己定义任何构造函数,则编译器会定义一个合成的默认构造函数,合成的默认构造函数的行为:若成员在类内有初始值,用该值来初始化函数,否则执行默认初始化。2.拷贝构造函数Foo(const Foo&)若我们没有定义拷... 阅读全文

posted @ 2015-04-08 21:09 远近闻名的学渣 阅读(171) 评论(0) 推荐(0)

堆排序 & 拷贝控制
摘要:class maxHeap{public: maxHeap(); maxHeap(int A[], int n); maxHeap(const maxHeap &); //拷贝控制,声明为public,允许用户进行拷贝//构造函数也能声明成private,可... 阅读全文

posted @ 2014-12-13 17:29 远近闻名的学渣 阅读(183) 评论(0) 推荐(0)

leetcode : Maximal Rectangle & Maximum Subarray & Largest Rectangle in Histogram
摘要:1,Maximum Subarray大致就是给一个int型数组,求一个长度最小为1的子数组,使得里面的数加起来和最大。很经典的dp题,方法是对于每一个i,求出以i结尾的最大子数组。而求以i 为结尾的最大子数组的问题可以变成,求以i - 1为结尾的最大子数组的值max_(i - 1),然后比较i 与m... 阅读全文

posted @ 2014-12-07 22:51 远近闻名的学渣 阅读(139) 评论(0) 推荐(0)

快速排序
摘要:1.快速排序是分治算法,所以用递归比较好实现2.每一躺排序开始时,用low,high控制排序,当low = end){ return; } while(low = mid) { //这里加不加等号都不影响排序的结果,下面一样 --high; ... 阅读全文

posted @ 2014-11-29 22:47 远近闻名的学渣 阅读(130) 评论(0) 推荐(0)

初始化与构造函数
摘要:1 c++的内置类型只有int ,double ,long,char等,并不包括string,string是stl定义的一个类2 在没有任何显式的初始化时,编译器会执行默认初始化:对于类类型,由类自己定义默认初始化时的操作,对于内置类型,内置类型的数组,或者指针,如果是全局变量或者静态局部变量,... 阅读全文

posted @ 2014-11-27 18:39 远近闻名的学渣 阅读(258) 评论(0) 推荐(0)

二叉树的遍历(非递归方法)
摘要:1.preorderTraversal由于先序遍历无需存储根节点的指针,可以很简单的设置这一个栈,当栈不空时弹出一个节点,访问,然后分别将左右子树压栈即可。下面是第二种方法,模拟了递归的过程;代码:void preorder(TreeNode * root){ auto p = root; ... 阅读全文

posted @ 2014-11-25 09:36 远近闻名的学渣 阅读(245) 评论(0) 推荐(0)

导航