confide

导航

03 2012 档案

基本的链表操作
摘要:链表排序 二路归并(暂未实现) 基本思想:维护一个队列,从头便利链表,找到一段按降序排列的链表段,一段一段的分开,然后将它们按顺序入队,每次从对头取出两个进行归并,归并后的结果入队。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 阅读(237) 评论(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 阅读(1082) 评论(0) 推荐(0)