#include<iostream.h>
template<class T>
struct Term
{
int row,col;
T val;
};
template<class T>
class Septriple
{
public:
Septriple(int msize);
~Septriple() {delete []trip;} ;
/// void Add(const Septriple<T> &B,Septriple<T> &C)const;
// void Mul(const Septriple<T> &B,Septriple<T> &C)const;
void Transpose()const;
void Shuru();
void Print();
private:
// int maxsize;
int m,n,t;
Term<T> *trip;
};
template<class T>
Septriple<T>::Septriple(int msize)
{
/*maxsize*/t=msize;
trip=new Term<T>[t];
for(int j=0;j<t;j++)
{
trip[j].row=0;
trip[j].col=0;
trip[j].val=0;
}
}
template<class T>
void Septriple<T>::Shuru()
{
int Row,Col,Val;
for(;;){
cout<<"行数:"<<endl;
cin>>m;
cout<<"列数:"<<endl;
cin>>n;
if(m*n<t)
{cout<<"Wrong data!"<<endl;
continue;
}
else break;
}
for(int i=0;i<t;i++){
cout<<"row:"<<endl;
cin>>Row;
trip.row=Row;
cout<<"col:"<<endl;
cin>>Col;
trip.col=Col;
cout<<"val:"<<endl;
cin>>Val;
trip.val=Val;
}
}
template<class T>
void Septriple<T>::Transpose()const
{
Septriple<T> A(t);
int k=0;
for(int i=0;i<n;i++)
for(int j=0;j<t;j++)
if(trip[j].col==i)
{
A.trip[k].col=trip[j].row;
A.trip[k].row=trip[j].col;
A.trip[k++].val=trip[j].val;
}
// this(A);
// return A.trip;
for(int x=0;x<t;x++)
{
trip[x].row=A.trip[x].row;
trip[x].col=A.trip[x].col;
trip[x].val=A.trip[x].val;
}
}
template<class T>
void Septriple<T>::Print()
{
for(int i=0;i<t;i++)
{
cout<<trip.row<<" "<<trip.col<<" "<<trip.val<<endl;
}
cout<<"/n";
}
void main()
{
Septriple<int> c(8);
c.Shuru();
c.Print();
c.Transpose();
c.Print();
}
三元组转置代码
最新推荐文章于 2023-02-17 18:44:24 发布