摘要:
假如需要定义一个fp指针,可以指向任何返回类型为double、参数类型为int的函数 方法为: double (*fp)(int); 或者: typedef double (*FP)(int); Fp fp; 一般用&取函数首地址赋值给fp。如果省略&,编译器会自动把函数名隐式类型转换成函数首地址 阅读全文
摘要:
在传统C语言程序中,描述顺序表的存储表示有两种方式:静态方式、动态方式 顺序表的静态存储表示: #define maxSize 100 typedefintT; typedefstruct{ T data[maxSize]; intn; }SeqList; 存储数组的大小和空间已经固定分配,一旦数据 阅读全文
摘要:
对类的对象进行操作,可以通过成员函数,或者定义一个友元函数(如果需要访问类的私有成员,类需要指定其为友元函数)。 如果要用C++的操作符,对类的对象进行操作,就需要针对相应的类,通过操作符重载机制来给出这些操作符的定义 不能重载的操作符: 成员选择符. 间接成员选择符.* 域解析符:: 条件操作符? 阅读全文
摘要:
为了支持移动操作(包括转移构造函数和转移赋值函数),C++引入了一种新的引用类型——右值引用,使用右值引用的代码可以自由的接管所引用对象的内容。 左值引用绑定的是返回左值引用的函数、赋值、下标、解引用、前置递增递减;右值只能绑定到临时对象,所引用的对象将要销毁或该对象没有其他用户。 初始化时,右值引 阅读全文
摘要:
排序的时间开销可用算法执行中的数据比较次数和数据移动次数来衡量。 不稳定的排序方法往往是按照一定的间隔移动或交换记录对象的位置,从而可能导致具有相等排序码的不同对象的前后相对位置在排序前后颠倒过来。 稳定的排序方法往往在相邻的数据对象间比较排序码,如果发生逆序才交换,具有相等排序码的不同对象在排序前 阅读全文
摘要:
用完全二叉树定义胜者树,前n-1个结点t[1]~t[n-1]为内部结点(胜者),后n个结点e[1]~e[n]是参赛者。 t数组存的是参赛者编号,即e[t[0]]才是最终胜者的值 阅读全文