实验四
task5:
测试结果:
源代码:
1 #include<iostream> 2 using namespace std; 3 class vectorInt 4 { 5 public: 6 vectorInt(int n=0):size(n){ 7 v=new int[size]; 8 cout<<"creat array"<<endl; 9 } 10 vectorInt(int n,int va):size(n){ 11 v=new int[size]; 12 for(int i=0;i<size;i++) 13 v[i]=va; 14 cout<<"creat array value"<<endl; 15 } 16 vectorInt(const vectorInt &vec){ 17 v=new int[vec.size]; 18 size=vec.size; 19 for(int i=0;i<size;i++) 20 v[i]=vec.v[i]; 21 cout<<"copy array"<<endl; 22 } 23 ~vectorInt(){ 24 delete[] v; 25 cout<<"delete array"<<endl; 26 } 27 int &at(int a) 28 { 29 return v[a]; 30 } 31 int get_size() const 32 { 33 return size; 34 } 35 friend void output(vectorInt &vv); 36 private: 37 int *v; 38 int size; 39 }; 40 void output(vectorInt &vv){ 41 for(int i=0;i<vv.size;i++) 42 cout<<vv.v[i]<<" "; 43 cout<<endl; 44 }
task6:
测试结果:
源代码:
1 #pragma once 2 #include<iostream> 3 using std::cout; 4 using std::endl; 5 6 class Matrix { 7 public: 8 Matrix(int n); // 鏋勯€犲嚱鏁帮紝鏋勯€犱竴涓猲*n鐨勭煩闃? 9 Matrix(int n, int m); // 鏋勯€犲嚱鏁帮紝鏋勯€犱竴涓猲*m鐨勭煩闃? 10 Matrix(const Matrix &X); // 澶嶅埗鏋勯€犲嚱鏁帮紝浣跨敤宸叉湁鐨勭煩闃礨鏋勯€? 11 ~Matrix(); //鏋愭瀯鍑芥暟 12 13 void set(const double *pvalue); // 鐢╬value鎸囧悜鐨勮繛缁唴瀛樺潡鏁版嵁鎸夎涓虹煩闃佃祴鍊? 14 void set(int i, int j, int value); //璁剧疆鐭╅樀绗琲琛岀j鍒楀厓绱犲€间负value 15 double &at(int i, int j); //杩斿洖鐭╅樀绗琲琛岀j鍒楀厓绱犵殑寮曠敤 16 double at(int i, int j) const; // 杩斿洖鐭╅樀绗琲琛岀j鍒楀厓绱犵殑鍊? 17 int get_lines() const; //杩斿洖鐭╅樀琛屾暟 18 int get_cols() const; //杩斿洖鐭╁垪鏁? 19 void print() const; // 鎸夎鎵撳嵃杈撳嚭鐭╅樀 20 21 private: 22 int lines; // 鐭╅樀琛屾暟 23 int cols; // 鐭╅樀鍒楁暟 24 double *p; // 鎸囧悜瀛樻斁鐭╅樀鏁版嵁鐨勫唴瀛樺潡鐨勯鍦板潃 25 }; 26 27 // 绫籑atrix鐨勫疄鐜帮細寰呰ˉ瓒? 28 // 脳脳脳 29 Matrix::Matrix(int n) 30 { 31 lines=n; 32 cols=n; 33 p=new double[n*n]; 34 } 35 Matrix::Matrix(int n,int m) 36 { 37 lines=n; 38 cols=m; 39 p=new double[n*m]; 40 } 41 Matrix::Matrix(const Matrix &X) 42 { 43 lines=X.lines; 44 cols=X.cols; 45 p=new double[lines*cols]; 46 for(int i=0;i<lines*cols;i++) 47 p[i]=X.p[i]; 48 } 49 Matrix::~Matrix(){} 50 void Matrix::set(const double *pvalue) 51 { 52 for(int i=0;i<lines*cols;i++) 53 p[i]=pvalue[i]; 54 } 55 void Matrix::set(int i,int j,int value) 56 { 57 p[i*cols+j]=value; 58 } 59 double &Matrix::at(int i,int j) 60 { 61 return p[i*cols+j]; 62 } 63 double Matrix::at(int i,int j) const 64 { 65 return p[i*cols+j]; 66 } 67 int Matrix::get_lines() const 68 { 69 return lines; 70 } 71 int Matrix::get_cols() const 72 { 73 return cols; 74 } 75 void Matrix::print() const 76 { 77 for(int i=0;i<lines;i++) 78 { 79 for(int j=0;j<cols-1;j++) 80 cout<<at(i,j)<<","; 81 cout<<at(i,cols-1); 82 cout<<endl; 83 } 84 }