数据结构与算法补充
函数模板:
例1:
实际中对不同类型数据可用排序函数sort
template<class T>
return-typr sort(…T… )
实际输出函数例子:
//制作模板
//传入参数array的类型不确定
template<class T>
void print(const T array[], int size)
{
int i;
for(i=0; i<size; i++) cout<<array[i];
return ;
}
//使用模板,传入数组类型为整型
int a[10]; print(a, 10);
一个函数模板里能有两个不确定的变量,如template <classT1, class T2>
类模板
例2:
template <class T>//类模板的首部,声明类模板的变量
class Carray
{
T *ptrElement;
int size
public:
Carray(int length);
~Carray();
int len();
void setElement(T arg, int index);
T getElement(int index);
Carray<int> arrayInt(50), *ptrArrayInt;
//创建一个元素类型为int的carrray模板类,并声明该模板类的一个对象,以及一个指针
//不同模板参数产生的模板类,不是同一个类
流操纵算子
double x = 1234567.89, y = 12.34567;
int n = 1234567
int m = 12;
cout << setprecision(6) << x << endl << y << endl << n << endl << m;//设置精度为6
//输出:
1.23457e+006
12.3457
1234567
12
double x = 1234567.89, y = 12.34567;
int n = 1234567
int m = 12;
cout << setiosflags(ios::fixed) << setprecision(6) << x << endl << y << endl << n << endl << m;
//设置小数点后保留6位
//输出:
1234567.890000
12.345670
1234567
12
设置域宽
cin.width(5);
cin >> string;
cout << string <<endl;
cin >> string;
cout << string <<endl;
//输入:1234567890
输出:1234(自动补\0)
567890
调试法:
1,等价类调试法
2,边界值分析法