首页 > 其他分享 >实验四

实验四

时间:2022-11-07 21:56:22浏览次数:60  
标签:const Matrix int 矩阵 cols 实验 vectorInt

#include<iostream>
#include<cassert>

using std::cout;
using std::endl;
class vectorInt {
public:
    vectorInt(int n, int m);
    vectorInt(int n);
    vectorInt(const vectorInt& a);
    ~vectorInt();
    friend void output(vectorInt&p1);
    int& at(int index);
private:
    int size;
    int* p;
};
vectorInt::vectorInt(int n) :size(n) {
    cout << "constructor 1 called." << endl;
    p = new int[size];
    int m = 1;
    for (int i = 0; i < size; i++)
    {
        p[i] = m;
    }
};
vectorInt::vectorInt(int n, int m) :size(n) {
    
    p = new int[size];
    for (int i = 0; i < size; i++)
    {
        p[i] = m;
    }
};
vectorInt::vectorInt(const vectorInt& a) :size{ a.size }
{
    cout << "constructor 2 called." << endl;
    cout << "copy constructor called." << endl;
    p = new int[size];
    for (int i = 0; i < size; i++)
    {
        p[i] = a.p[i];
    }
}
vectorInt::~vectorInt()
{
    delete[] p;
}
void output(vectorInt& p1)
{
    int*p = p1.p;
    for (int i = 0; i < p1.size; i++)
    {
        cout << p[i] <<" ";
    }
    cout << endl;
}
inline int& vectorInt::at(int index)
{
    assert(index >= 0 && index < size);
    return p[index];
}

#include <iostream>
#include <cassert>
using namespace std;
class Matrix
{
public:
    Matrix(int n);                     // 构造函数,构造一个n*n的矩阵
    Matrix(int n, int m);              // 构造函数,构造一个n*m的矩阵
    Matrix(const Matrix& X);           // 复制构造函数,使用已有的矩阵X构造
    ~Matrix();                         //析构函数
    void set(const double* pvalue);     // 用pvalue指向的连续内存块数据为矩阵赋值
    void set(int i, int j, int value); //设置矩阵第i行第j列元素值为value
    double& at(int i, int j);          //返回矩阵第i行第j列元素的引用
    double at(int i, int j) const;     // 返回矩阵第i行第j列元素的值
    int get_lines() const;             //返回矩阵行数
    int get_cols() const;              //返回矩列数
    void print() const;                // 按行打印输出矩阵
private:
    int lines; // 矩阵行数
    int cols;  // 矩阵列数
    double* p; // 指向存放矩阵数据的内存块的首地址
};


// 类Matrix的实现:待补足
Matrix::Matrix(int n) :lines{ n }, cols{ n }
{
    p = new double[n * n];
}
inline Matrix::Matrix(int n, int m) : lines(n), cols(m)
{
    p = new double[n * m];
}
inline Matrix::Matrix(const Matrix& X) : lines{ X.lines }, cols{ X.cols }
{
    p = new double[lines * cols];
    for (int i = 1; i <= lines * cols; i++)
        p[i] = X.p[i];
}
inline Matrix::~Matrix()
{
    delete[]p;
}
inline void Matrix::set(const double* pvalue)
{
    for (int i = 0; i < lines * cols; i++)
        p[i] = pvalue[i];
}
inline void Matrix::set(int i, int j, int value)
{
    p[i * cols + j] = value;
}
inline double& Matrix::at(int i, int j)
{
    return p[i * cols + j];
}
inline double Matrix::at(int i, int j) const
{
    return p[i * cols + j];
}
inline int Matrix::get_lines() const
{
    return lines;
}
inline int Matrix::get_cols() const
{
    return cols;
}
inline void Matrix::print() const
{
    for (int i = 0; i < lines; i++)
    {
        for (int j = 0; j < cols; j++)
            cout << p[i * cols + j] << ",";
        cout << endl;
    }

 

标签:const,Matrix,int,矩阵,cols,实验,vectorInt
From: https://www.cnblogs.com/lhf123/p/16867611.html

相关文章

  • 第四次实验
    1#pragmaonce2#include<iostream>3usingnamespacestd;4classvectorInt5{6public:7vectorInt(intn);8vectorInt(intn,intnum);9......
  • 软件工程实验一
    (1)回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?你现在后悔选择了这个专业吗?你认为你现在最喜欢的领域是什么(可以是计算机的也可以是其它......
  • 软件工程实验一MXY
    (1)回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?    报考时不了解所学究竟是什么,迷茫焦虑没有方向。你现在后悔选择了这个专业吗?......
  • 实验4:开源控制器实践——OpenDaylight
    (一)基本要求1.利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight控制器;2.通过Postman工具调用OpenDaylight提供的API下发流表,实现拓扑内主机h1和h3网络中断10s。......
  • 0001-华为ENSP WLAN配置实验-郑锦程
    0001-华为ENSPWLAN配置实验-郑锦程创建管理vlan和业务vlan​​[AC6605]vlanbatch100101​​​​Info:Thisoperationmaytakeafewseconds.Pleasewaitforamome......
  • 二叉树相关上机实验
    #include<stdio.h>#include<malloc.h>#defineOK1#defineERROR0#defineMAXNUM20typedefintStatus;typedefstructbnode{intdata;structbnode......
  • 软件工程基础Y-实验一王瑜
    (1)回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢软件工程这个专业吗?有一些喜欢至少比其它专业喜欢你现在后悔选择了这个专业吗?不后悔你认为你现在最喜欢......
  • 实验3 函数应用编程
    实验任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidpri......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的1.能够对OpenvSwitch进行基本操作;2.能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;3.能够通过Mininet的Pyt......
  • 实验4 类与数组、指针
    task5.cpp#include<iostream>#include"vectorInt.hpp"voidtest(){usingnamespacestd;intn;cin>>n;vectorIntx1(n);for(autoi......