判断单链表是否有环两个指针分别为p1和p2,每循环一次只向前走一步,p2向前走两步,知道p2碰到NULL指针或者两个指针相等则说明有环如果存在,start存放在圆环开始的节点bool
IsLoop(node *head,node *start){node *p1=head,*p2=head;if(h...
分类:
其他好文 时间:
2014-05-10 00:22:22
阅读次数:
272
2013-01-28void*/void xdata
*在值为0时有区别,因为它们还保存了存储区域,导致0值的void xdata *如果转换为 void*再和NULL比较时,并不相等;直接把类似void
xdata *这样的指针和NULL比较是可以的, 而把它转换成 void*再和NULL比较则不...
分类:
其他好文 时间:
2014-05-10 00:02:28
阅读次数:
288
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned
int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。
由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小...
分类:
其他好文 时间:
2014-05-09 16:11:21
阅读次数:
267
判断单链表是否有环
假设两个指针分别为p1和p2,每循环一次只向前走一步,p2向前走两步,知道p2碰到NULL指针或者两个指针相等则说明有环
如果存在,start存放在圆环开始的节点...
分类:
其他好文 时间:
2014-05-09 14:12:54
阅读次数:
273
循环引用:引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下:#include#include#include#includeclassparent;classchildren;typedefboost::shared_ptr
parent_pt...
分类:
其他好文 时间:
2014-05-09 13:01:22
阅读次数:
326
1. 异常处理
异常以类似于将实参传递给函数的方式抛出和捕获。异常可以是可传给非引用实参的任意实参的类型,这意味着必须能够复制该类型的对象。
当抛出一个表达式的时候,被抛出对象的静态编译时类型将决定异常对象的类型。
抛出指针通常是个坏主意。
栈展开:沿着嵌套函数调用链继续向上,直到为异常找到一个catch子句。
栈展开期间,释放局部对象所用的内存并运行类类...
分类:
编程语言 时间:
2014-05-09 06:17:46
阅读次数:
528
#include
using namespace std;
const int MAXQSIZE = 5;
//队列类
template
struct LinkList
{
T * data;//指向连续的数据存储区域
int front;//头指针 指向第一个元素
int rear;//尾指针 如果队列不为空指向最后元素的下一个位置
};
//构造一个空队列
template
void...
分类:
其他好文 时间:
2014-05-09 06:07:53
阅读次数:
248
B树即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right);
2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:
B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字...
分类:
其他好文 时间:
2014-05-09 05:44:56
阅读次数:
275
举例:x指向的内存地址,其字节内容从低到高依次分别为c1,c2,c3,c4(Delphi读取一个integer的时候,结果是c4c3c2c1,其排列规则是"高高低低"),那么结果是c4,c3,c2,c1(Delphi读取一个integer的时候,结果是c1c2c3c4)用delphi写的程序,把x指...
分类:
其他好文 时间:
2014-05-09 05:41:08
阅读次数:
329
1.把一个 const 对象的地址赋给一个普通的、非 const
对象的指针也会导致编译时的错误:const double pi = 3.14;double *ptr = π // error: ptr is a
plain pointerconst double *cptr = π /...
分类:
编程语言 时间:
2014-05-09 05:39:43
阅读次数:
404