
包括转置函数transport
template
class mat
{
private:
T** a; //二级指针
int h, l; //行、列
public:
mat(){}
mat(int h1, int l1)
{
h = h1;
l = l1;//设置行列
a = new T * [h];
for (int i = 0; i < h; ++i)
{
a[i] = new T[l];
}//创造二维数组
}
void set(int h1,int l1)
{
h = h1;
l = l1;
a = new T * [h];
for (int i = 0; i < h; ++i)
{
a[i] = new T[l];
}
for (int i = 0; i < h; i++)
{
for (int j = 0; j < l; j++)
{
cin >> a[i][j];//传入数据
}
}
}
~mat()
{
for (int i = 0; i < h; ++i)
{
delete[] a[I];
}
delete[] a;//析构
}
void tran()//转置
{
mat tmp(l,h);//创造新数组接收传进的数组
for (int j = 0; j < l; j++)
{
for (int i = 0; i < h; i++)
{
tmp.a[j][i] = a[i][j];
}
}
for (int i = 0; i < h; ++i)
{
delete[] a[i];
}
delete[] a;//释放掉原来的
h = tmp.h;
l = tmp.l;
a = new T * [h];
for (int i = 0; i < h; ++i)
{
a[i] = new T[l];
}
for (int i = 0; i < h; i++)
{
for (int j = 0; j < l; j++)
{
a[i][j] = tmp.a[i][j];//将转置后的重新传回来
}
}
}
void show()
{
for (int i = 0; i < h; i++)
{
for (int j = 0; j < l; j++)
{
if (j != 0)
{
cout << " " << a[i][j];
}
else
{
cout << a[i][j];
}
}
cout << endl;
}
}
};
2.sort函数
对给定区间所有元素进行排序,默认为升序,也可进行降序排序。
头文件要加上#include
Sort函数有三个参数:
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以不写第三个参数,默认的排序方法是从小到大排序。
sort(start,end,排序函数)
3.列表类(类模板)template
class list
{
private:
T a[100];
int lenth;
public:
list(){}
void readNum(int n)
{
lenth=n;
for(int i=0;i>a[i];//读入列表
}
}
void cha(int j, T q)//插入一个数
{
for (int s = lenth+1; s >= j; s--)
{
a[s+1] = a[s];
}
lenth++;
a[j] = q;
}
void shan(int j)//删掉一个数
{
for (int s =j;s
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)