64,636
社区成员
发帖
与我相关
我的任务
分享
//matrix_3_3.h
template<class T>
class matrix_3_3{
public:
matrix_3_3(){m11=m12=m13=m21=m22=m23=m31=m32=m33=0;}
matrix_3_3(T v11,T v12,T v13,T v21,T v22,T v23,T v31,T v32,T v33);
matrix_3_3(matrix_3_3<T>& A);
matrix_3_3<T>& multiply(matrix_3_3<T>& B);
void print();
~matrix_3_3<T>(){};
private:
T m11,m12,m13,m21,m22,m23,m31,m32,m33;// by raw
};
template<class T>
matrix_3_3<T>::matrix_3_3(matrix_3_3<T> &A){
m11=A.m11;
m21=A.m21;
m31=A.m31;
m12=A.m12;
m22=A.m22;
m32=A.m32;
m13=A.m13;
m23=A.m23;
m33=A.m33;
}
template<class T>
matrix_3_3<T>::matrix_3_3(T v11, T v12, T v13, T v21, T v22, T v23, T v31, T v32, T v33){
m11=v11;
m21=v21;
m31=v31;
m12=v12;
m22=v22;
m32=v32;
m13=v13;
m23=v23;
m33=v33;
}
template<class T>
matrix_3_3<T>& matrix_3_3<T>::multiply(matrix_3_3<T>& B){
double t1, t2; // temporary values
t1 = m11*B.m11 + m12*B.m21 + m13*B.m31;
t2 = m11*B.m12 + m12*B.m22 + m13*B.m32;
m13 = m11*B.m13 + m12*B.m23 + m13*B.m33;
m11 = t1;
m12 = t2;
t1 = m21*B.m11 + m22*B.m21 + m23*B.m31;
t2 = m21*B.m12 + m22*B.m22 + m23*B.m32;
m23 = m21*B.m13 + m22*B.m23 + m23*B.m33;
m21 = t1;
m22 = t2;
t1 = m31*B.m11 + m32*B.m21 + m33*B.m31;
t2 = m31*B.m12 + m32*B.m22 + m33*B.m32;
m33 = m31*B.m13 + m32*B.m23 + m33*B.m33;
m31 = t1;
m32 = t2;
return *this;
}
template<class T>
void matrix_3_3<T>::print( ){
cout<<this->m11<<"\t"<<this->m12<<"\t"<<this->m13<<endl;
cout<<this->m21<<"\t"<<this->m22<<"\t"<<this->m23<<endl;
cout<<this->m31<<"\t"<<this->m32<<"\t"<<this->m33<<endl;
}
//matrix_3_3.cpp
#include "matrix_3_3.h"
#include <iostream>
using namespace std;
void main(){
matrix_3_3<double> myMatrix(1,2,3,4,5,6,7,8,9);
matrix_3_3<double> myIdentity(1,0,0,0,1,0,0,0,1);
matrix_3_3<double> myMatrix1(9.0,8.1,7.2,6.3,5.4,4.7,3.2,2.1,1.9);
matrix_3_3<double> myMatrix2(myMatrix1);
myMatrix.multiply(myIdentity);
cout<<"the result multiplied by Identity:"<<endl;
myMatrix.print();
myMatrix1.multiply(myMatrix);
cout<<"the result multiplied by left:(myMatrix1 * myMatrix)"<<endl;
myMatrix1.print();
myMatrix.multiply(myMatrix2);
cout<<"the result multiplied by right:(myMatrix * myMatrix1)"<<endl;
myMatrix.print();
}
#include <iostream>
#include <cctype>
#include <list>
#include <iterator>
#include <algorithm>
using namespace std;
void main(){
list<char> clist;
for(char s='a';s<='z';++s)
clist.push_back(s);
list<char>::iterator citer;
cout<<"lowercase letter as follow:"<<endl;
for(citer=clist.begin();citer!=clist.end();++citer)
cout<<*citer<<" ";
for(citer=clist.begin();citer!=clist.end();++citer)
*citer=toupper(*citer);
cout<<"\nuppercase letter as follow:"<<endl;
for(citer=clist.begin();citer!=clist.end();++citer)
cout<<*citer<<" ";
cout<<"\nuppercase reversed letter as follow:"<<endl;
list<char>::reverse_iterator rciter;
for(rciter=clist.rbegin();rciter!=clist.rend();++rciter)
cout<<*rciter<<" ";
cout<<endl;
}