confide

导航

随笔分类 -  学习笔记

基本的链表操作
摘要:链表排序 二路归并(暂未实现) 基本思想:维护一个队列,从头便利链表,找到一段按降序排列的链表段,一段一段的分开,然后将它们按顺序入队,每次从对头取出两个进行归并,归并后的结果入队。View Code #include <iostream>using namespace std;struct node{ int d; node *next; node(int x){d = x;next = NULL;}};//链表找中点node *findminnode(node *head){ if(head == NULL || head->next == NULL) ... 阅读全文

posted @ 2012-03-09 19:05 confide 阅读(179) 评论(0) 推荐(0)

const static知多少
摘要:他们在类的声明与初始化class d{public:int xx;static int yy;const static int zz;const int abc ;int &ref;d():abc(3),ref(xx){}};int d::yy = 5;const int d::zz = 4;带static和const修饰符的类成员变量均不能在类中直接初始化例如上述程序改动static int yy = 1;提示语法错误(未编译):在类里面初始化的成员必须是常量若改动const int abc = 1;提示编译错误(编译):只有常量成员才可以在类中初始化上面两个对应的意思就是只有静态的 阅读全文

posted @ 2012-03-08 20:14 confide 阅读(238) 评论(0) 推荐(0)

i++,++i, i=i+1 vs编译器上的深入研究
摘要:首先三者都是等价的操作,三者的效率也都是等价的,这是vs2010的反汇编,三者都被转成相同的汇编代码:01041375 mov eax,dword ptr [i] 01041378 add eax,1 0104137B mov dword ptr [i],eax 三者在表达式中需要注意的:i++ = 1; (错误,语法提示i++不能作为左值) ++i = 1; (正确)如下程序:int i = 0;++i = 0;结果i为0,说明++i=0;表达式的解释为: ++i=0; ------> i=i+1; i=0;对于输出的... 阅读全文

posted @ 2012-03-08 20:10 confide 阅读(1087) 评论(0) 推荐(0)

c++对象模型——笔记
摘要:多态的主要用途是经由一个共同的接口来影响类型的封装,这个接口通常被定义在一个抽象的基类中,共享接口可以以虚函数的机制引发,可以在执行期(runtime)根据object对象的真正类型解析出来到底是哪个函数的实体被调用。 对于一个类大小的定义:非静态数据成员 + 内存对齐空间 + 虚机制产生的空间(虚函数指针)。 指针类型的作用:会教导编译器如何解释某个特定地址中的内存内容和其大小。 void*类型的指针:无法得知其涵盖的空间,这样的指针只能含有一个地址,而不能通过它操作所指的对象。 阅读全文

posted @ 2011-11-07 10:53 confide 阅读(116) 评论(0) 推荐(0)