首页 > 其他分享 >实验4

实验4

时间:2022-11-08 21:45:01浏览次数:38  
标签:const Matrix int void cols 实验 vectorInt

任务五

#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();
}
.cpp
#include <iostream>
using namespace std;
class vectorInt{
public:
    vectorInt(int a);
    vectorInt(int a,int b);
    vectorInt(vectorInt& S);
    ~vectorInt();
    int &at(int i);
    int g_s();
    friend void output(vectorInt &S);
private:
    int *p;    
    int size;
};
vectorInt::vectorInt(int a):size{a}
{
    p=new int[a];
    for(auto i=0:a)
    {
        p[i]=0;
    }
    cout<<"constructor 1 called."<<endl;
}

vectorInt::vectorInt( vectorInt& S)
{
    this->p=new int[S.size];
    this->size=S.size;
    for(int i=0;i<size;++i)
    {
        this->p[i]=S.at(i);
    }
cout<<"copy constructor called."<<endl;
}

vectorInt::vectorInt(int a,int b):size{a}
{
        p=new int[a];

    for(int i=0;i<size;++i)
    {
        p[i]=b;
    }
    cout<<"constructor 2 called."<<endl;
}

vectorInt::~vectorInt()
{
    delete [] p;
    cout<<"destructor called."<<endl;
}

int &vectorInt::at(int i)
{
    return p[i];
}
int vectorInt::g_s()
{
    return size;
}

void output(vectorInt &S)
{
    for(int i=0;i<S.g_s();++i)
    {
    cout<<S.at(i)<<", ";
    }
    cout<<"\b\b \a";
}
.hpp

任务六:

 

 

#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();
}
.cpp
#pragma once
#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;
}
.hpp

 

标签:const,Matrix,int,void,cols,实验,vectorInt
From: https://www.cnblogs.com/shun16/p/16871319.html

相关文章

  • 实验6:开源控制器实践——RYU
    实验6:开源控制器实践——RYU一、实验目的能够独立部署RYU控制器;能够理解RYU控制器实现软件定义的集线器原理;能够理解RYU控制器实现软件定义的交换机原理。二、实验......
  • 实验4:开源控制器实践——OpenDaylight
    实验4:开源控制器实践——OpenDaylight一、实验目的能够独立完成OpenDaylight控制器的安装配置;能够使用Postman工具调用OpenDaylightAPI接口下发流表。二、实验环境......
  • 实验4 类与数组、指针
    实验任务5:#include<iostream>#include"vectorInt.h"usingnamespacestd;voidtest(){usingnamespacestd;intn;cin>>n;vectorIntx1(n);......
  • 实验四 类与数组、指针
    实验五:task5.cpp#include<iostream>#include"vectorInt.hpp"voidtest(){usingnamespacestd;intn;cin>>n;vectorIntx1(n);for(autoi......
  • 实验一———个人项目:任务2
    一、回顾你过去将近三年的经历1、当初报考的时候,是真正喜欢计算机这个专业吗?我本人从初中开始就很喜欢计算机专业,一是我姐就是计算机专业的,二是我觉得敲代码真的很帅,以至......
  • 实验3
     #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明......
  • 实验4 类与数组、指针
    实验五vectorint.h#pragmaonce#include<iostream>usingnamespacestd;classvectorInt{public: ints,*p; vectorInt(intm) { p=newint[m]; s......
  • 实验3
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_test(intline,intcol,chartest[]);voidprint_spaces(int......
  • 实验4 类与数组、指针
    Task1~4浅复制:inta=10;intb=a;可用于静态内存的复制。对于简单的类,默认的复制构造函数已经够用了,但当类持有其他资源,如动态分配的内存、指针等,就需要用到深复制......
  • 实验四
    实验任务五cpp#include<iostream>#include"vectorInt.hpp"voidtest(){usingnamespacestd;intn;cin>>n;vectorIntx1(n);for(aut......