首页 > 其他分享 >实验四

实验四

时间:2022-11-03 17:02:58浏览次数:55  
标签:std matrix int cols 实验 using include

vectorint.hpp

#pragma once
#include<iostream>
using std::cout;
using std::endl;
class vectorint{
private:
    int size;
    int *p;
public:
    vectorint(int n):size{n}{
        cout<<"constructor 1 called"<<endl;
        p= new int[n];
    }
    
    vectorint(int n,int x):size{n}{
        cout<<"constructor 2 called"<<endl;
        p=new int[n];
        for(auto i=0;i<n;i++){
            p[i]=x;
        }
    }
    
    vectorint(const vectorint &vp):size{vp.size}{
        cout<<"copy constructor called"<<endl;
        p=new int[size];
        for(auto i=0;i<size;i++){
        p[i]=vp.p[i];
        }
    }
    
    ~vectorint(){
        cout<<"destructor called"<<endl;
        delete[]p;
    }
    
    int &at(int i){
        return p[i];
    }
    
    friend void output(vectorint &x){
        cout<<x.at(0);
        for(auto i=1;i<x.size;i++){
            cout<<","<<x.at(i);
        }
        cout<<endl;
    }
    
};

task5.cpp

#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();
}

 matrix.hpp

#pragma once
#include<iostream>

using std::cout;
using std::endl;

class matrix{
private:
    int lines;
    int cols;
    double *p;
public:
    matrix(int n):lines{n},cols{n}{
        p=new double[n*n];
    }
    
    matrix(int n,int m):lines{n},cols{m}{
        p=new double[n*m];
    }
    
    double &at(int i,int j){
        return p[i*cols+j];
    }
    
    matrix(const matrix &x):lines{x.lines},cols{x.cols}{
        p=new double[lines*cols];
        for(auto i=0;i<lines;i++){
            for(auto j=0;j<cols;j++){
                p[i*cols+j]=x.at(i,j);
            }
        }
    }
    
    ~matrix()=default;
    
    void set(const double *pvalue){    
        for(int i=0;i<lines*cols;i++){
            p[i]=pvalue[i];
        }
    }
    
    void set(int i,int j,int value){
        p[i*cols+j]=value;
    }
    
    double at(int i,int j)const{
        return p[i*cols+j];
    }
    
    int get_lines()const{
        return lines;
    }
    int get_cols()const{
        return cols;
    }
    
    void print()const{
        for(auto i=0;i<lines;i++){
            for(auto j=0;j<cols;j++){
                cout<<p[i*cols+j]<<" ";
            }
            cout<<endl;
        }
    }
};

task6.cpp

#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();
}

 

标签:std,matrix,int,cols,实验,using,include
From: https://www.cnblogs.com/dgfhdrth/p/16854925.html

相关文章

  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......
  • 实现实验室和寝室两台电脑文件实时同步
    考虑到白天去实验室工作,晚上又要回寝室,文件传输会很麻烦,于是寻求能够方便进行文件远程同步的方案。1.使用工具内网穿透:zerotier(全平台均可)文件同步(备份)工具:FreeFileSync(Win......
  • 实验3
     task1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<Windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_sp......
  • P4 tutorials实验 - basic-tunnel
    P4tutorials实验-basic-tunnel基础知识隧道(tunnel):可以将IP隧道视为一对节点之间的虚拟点对点链路虚拟链路是在隧道入口处的路由器内创建的,当隧道入口处的路由器想通......
  • Openwrt 跨网实现二层实验
    由于公司项目需要跨网实现二层通信,在咨询大量的大神后他们推荐的方案是vxlan方案。于是就有了下面的实验。网络拓扑:网络环境:内网IP公网IP系统软件路由R1192.168.220.254/241......
  • Python实验报告——第10章 文件及目录操作
    实验报告【实验目的】 1.掌握Python自带的函数进行基本文件操作。2.掌握Python内置的os模块及其子模块os.path进行目录相关的操作。【实验条件】1.PC机或者远程编......
  • 实验三
      #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函......
  • 实验七:基于REST API的SDN北向应用实践
    一、实验目的1.能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;2.能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境1.下载虚拟机软件OracleVisua......
  • 实验四:开源控制器实践——opendaylight
    基础要求......
  • 实验七
    实验7:基于RESTAPI的SDN北向应用实践(一)基本要求编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight; ......