实验三

#include<iostream>
using namespace std;
class vector_int
{
public:
    vector_int();
    vector_int(int s);
    vector_int(int s,int x);
    void print();
    int &at(int x);
private:
    int size;
    int *p;
};
vector_int::vector_int(int s):size(s)
{
    p=new int[s];
}
vector_int::vector_int(int s,int x):size(s)
{
    p=new int[s];
    for(int i=0;i<s;i++)
        p[i]=x;
}
void vector_int::print()
{
    for(int i=0;i<size;i++)
        cout<<p[i]<<" ";
    cout<<endl;
}
int &vector_int::at(int x)
{
    return p[x];
}
#include<iostream>
#include"vector_int.hpp"
using namespace std;
int main()
{
    int s;
    cout<<"请输入构造对象的空间大小:";
    cin>>s;
    vector_int x1(s);
    x1.print();
    vector_int x2(s,6);
    x2.print();
    vector_int y(x2);
    y.print();
    y.at(0)=999;
    y.print();
    return 0;
}

#include<iostream>
using namespace std;
class matrix
{
public:
    matrix(int n);
    matrix(int n,int m);
    matrix(const matrix&x);
    //~matrix();
    void set(const double *pvalue);
    void set(int i,int j,int value);
    //double &at(int i,int j);
    double at(int i,int j) const;
    int get_lines() const;
    int get_cols() const;
    void print() const;
private:
    int lines;
    int cols;
    double *p;
};
matrix::matrix(const matrix&x)
{
    lines=x.lines;
    cols=x.lines;
    p=x.p;
}
/*matrix::~matrix()
{
    delete[] p;
}*/
matrix::matrix(int n)
{
    lines=n;
    cols=n;
    p=new double[lines*cols];
    for(int i=0;i<lines*cols;i++)
    {
        p[i]=0;
    }
}
matrix::matrix(int n,int m)
{
    lines=n;
    cols=m;
    p=new double[lines*cols];
    for(int i=0;i<lines*cols;i++)
    {
        p[i]=0;
    }
}
/*int matrix::get_cols() const
{
    return cols;
}
int matrix::get_lines() const
{
    return lines;
}*/
void matrix::set(const double *pvalue)
{
    int i;
    for(i=0;i<=lines*cols;i++)
        p[i]=pvalue[i];
}
void matrix::print() const
{
    int i,j;
    for(i=0;i<lines;i++)
    {
        for(j=0;j<cols;j++)
        {
            cout<<p[i*cols+j];
            if(j!=cols-1)
                cout<<",";
        }
        cout<<endl;
    }
}
double matrix::at(int i,int j) const
{
    return p[i*cols+j];
}
void matrix::set(int i,int j,int value) 
{
    p[i*cols+j]=value;
}
#include<iostream>
#include"matrix.hpp"
int main()
{
    using namespace std;
    double x[]={1,2,3,4,5,6};
    matrix m1(3,2);
    m1.set(x);
    m1.print();
    cout<<"the frist line is:"<<endl;
    cout<<m1.at(0,0)<<" "<<m1.at(0,1)<<endl;
    cout<<endl;
    matrix m2(2,3);
    m2.set(x);
    m2.print();
    cout<<"the first line is:"<<endl;
    cout<<m2.at(0,0)<<" "<<m2.at(0,1)<<" "<<m2.at(0,2)<<endl;
    cout<<endl;
    matrix m3(m2);
    m3.set(0,0,999);
    m3.print();
}

 

 

posted @ 2021-11-07 15:57  202083290040王博宇  阅读(24)  评论(2)    收藏  举报