首页 > 其他分享 >实验四

实验四

时间:2022-11-09 11:44:18浏览次数:36  
标签:const Matrix int cols 实验 vectorInt include

#include <iostream>
#include <vector>
#include <string>
using namespace std;

class vectorInt
{
    public:
        vectorInt();
        vectorInt(int n);
        vectorInt(int n,int value);
        vectorInt(const vectorInt &vi);
        ~vectorInt();
        
        friend int output(vectorInt &v)
        {
            int i;
            for (i = 0; i < v.size; i++)
            cout << v.p[i] << " ";
            cout << endl;
        }
                    
        int &at(int index)
        {
            if (index >= 0 && index < size)
            return p[index];
        }
        
    private:
        int size;
        int *p;
};

vectorInt::vectorInt(int n)
{
    cout << "constructor1 called.\n";
    size = n;
    p = new int[n];
}

vectorInt::vectorInt(int n,int value)
{
    size = n;
    p = new int[n];
    for(int j=0;j < n;j++)
    {
        p[j] = value;
    }
}

vectorInt::vectorInt(const vectorInt &vi)
{
    cout << "copy structor called" << endl; 
    size = vi.size;
    p = new int[size];
    for(auto i = 0; i < size; ++i)
    p[i] = vi.p[i];
}

vectorInt::~vectorInt() 
{    
    cout << "destructor called" << endl;
    delete[] p;
}
#include <iostream>
#include "vectorInt.hpp"

void test() {
    using namespace std;

    int n;
    cin >> n;
    
    vectorInt x1(n);
    for(auto i = 0; i < n; ++i)
        x1.at(i) = i*i;

    output(x1);

    vectorInt x2(n, 42);
    vectorInt x3(x2);

    output(x2);
    output(x3);

    x2.at(0) = 77;

    output(x2);
    output(x3);
}

int main() {
    test();
}

 

#include <iostream>
#include "matrix.hpp"
void test(){
    using namespace std;
    double x[]={1,2,3,4,5,6};
    Matrix m1(3,2);
    m1.set(x);
    m1.print();
    cout<<"the first 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();

}
int main(){
    test();
}
#include <iostream>
using std::cout;
using std::endl;
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)const;
        int get_lines()const;
        int get_cols()const;
        void print()const;
    private:
        int lines;
        int cols;
        double* p;
};
int Matrix::get_lines()const
{
    return lines;
}
int Matrix::get_cols()const
{
    return cols;
}

Matrix::Matrix(int n,int m):lines{n},cols{m}
{
    p=new double[n*m];
}

Matrix::Matrix(int n):lines{n},cols{n}
{
    p=new double[n*n];
}

Matrix::Matrix(const Matrix& X)
{
    this->lines=X.get_lines();
    this->cols=X.get_cols();
    this->p=X.p;
}
void Matrix::set(int i,int j,int value)
{
    int k=i*cols+j;
    p[k]=value;
}
void Matrix::set(const double*pvalue)
{
    int k=0;
    for(k=0;k<lines*cols;k++)
    {
    p[k]=pvalue[k];
    }
}
void Matrix:: print()const
{
    for(int i=0;i<lines;++i)
    {
        for(int j=0;j<cols;++j)
        {
            if(j==cols-1)
            {
                cout<<p[i*cols+j]<<endl;
            }
            else
            {
                cout<<p[i*cols+j]<<", ";
            }
        }
    }
}
double &Matrix::at(int i,int j)const
{
        return p[i*cols+j];
}

Matrix::~Matrix()
{
    delete [] p;
}

 

标签:const,Matrix,int,cols,实验,vectorInt,include
From: https://www.cnblogs.com/qjj12-30/p/16855715.html

相关文章

  • 2022年11月6日第一次实验
    2.1任务1实验过程2.1.1创建博客先前已经注册了博客园账号,因此我直接开始了申请博客,且审批得到了通过。 图2.1开通博客截图 图2.2申请博客成功截图成功开通博客园......
  • 软件工程实验一
    1.2.2阅读材料并思考请阅读北航陈彦吉同学的这篇博客中的各参考资料,并回答如下问题:(1)回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?答:当......
  • 实验四
    #pragmaonce#include<iostream>usingnamespacestd;classvectorInt{public:vectorInt(intn);vectorInt(intn,intvalue);vectorInt(constvect......
  • 实验4
    task5:#include<iostream>#include<cassert>#include<stdlib.h>#definevalue1usingnamespacestd;classvectorint{public:vectorint(inta)......
  • 实验四
    实验任务5:vectorInt.hpp#pragmaonce#include<bits/stdc++.h>usingnamespacestd;classvectorInt{public:vectorInt(intn);vectorInt(intn,intv......
  • 实验四
    实验任务5.cppvoidtest(){usingnamespacestd;intn;cin>>n;vectorIntx1(n);for(autoi=0;i<n;i++)x1.at(i)=i*......
  • 实验三
    任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidpri......
  • 实验四 类与数组、指针
    任务五代码:vectorInt:#pragmaonce#include<iostream>#include<cassert>usingnamespacestd;classVectorInt{public:VectorInt(ints);......
  • 实验四
    1cpp#include<iostream>#include"point.hpp"#include<vector>usingnamespacestd;voidtest1(){intn;cin>>n;vector<Point>x(n);x.......
  • 实验四
    task5vectorint.hpp#pragmaonce#include<iostream>#include<cassert>usingnamespacestd;classvectorint{public:vectorint(){};vectorint(intn......