首页 > 其他分享 >实验6 模板类、文件I/O和异常处理

实验6 模板类、文件I/O和异常处理

时间:2023-12-17 20:46:37浏览次数:28  
标签:文件 int Vector 实验 output include data 模板 size

Task4:
 vector.hpp:

#include<iostream>
#include<string>
#include<stdexcept>

using namespace std;

template <typename T>
class Vector {
private:
    T* data;
    int size;
public:
    Vector() : data(nullptr), size(0) {}
    Vector(int n) : size(n) {
        data = new T[n];
        for (int i = 0; i < n; i++) {
            data[i] = T();
        }
    }
    Vector(int n, T t):size{n} {
    data= new T[n];
    for (int i = 0; i < n; i++)
         data[i] = t;
   }
    Vector(const Vector& other) : size(other.size) {
        data = new T[size];
        for (int i = 0; i < size; i++) {
            data[i] = other.data[i];
        }
    }
    int get_size() const {
        return size;
    }
    ~Vector() {
        delete[] data;
    }
    T& at(int i) {
        if (i < 0 || i >= size) {
            throw out_of_range("Index out of range");
        }
        return data[i];
    }
    T& operator[](int i) {
        return at(i);
    }
    friend void output(const Vector& v) {
        for (int i = 0; i < v.size; i++) {
            cout << v.data[i] << " ";
        }
        cout << endl;
    }
};

Task4.cpp:

#include <iostream>
#include "Vector.hpp"

void test() {
    using namespace std;

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

    output(x1);

    Vector<int> x2(n, 42);
    Vector<int> x3(x2);

    output(x2);
    output(x3);

    x2.at(0) = 77;
    output(x2);

    x3[0] = 999;
    output(x3);
}

int main() {
    test();
}

 Task5:
main:

#include<iostream>
#include<fstream>
#include<string>
#include<iomanip>

using namespace std;

void output(std::ostream& output) {
output << " ";
for(int i=97;i<123;i++) {
output << setw(2) << char(i);
}
output << endl;

for(int i=1;i<=26;i++) {
output << setw(2) << i;
for(int j=i;j<i+26;j++) {
output << setw(2) << char(65 + j % 26);
}
output << endl;
}
}
int main() {
ofstream out;
output(cout);
out.open("cipher_key.txt");
output(out);
return 0;
}

 

 

标签:文件,int,Vector,实验,output,include,data,模板,size
From: https://www.cnblogs.com/yanmao/p/17909732.html

相关文章

  • 实验7
    实验任务4:\#include<stdio.h>intmain(){inti=0;chars;FILE*fp;fp=fopen("data4.txt","r");while(1){s=fgetc(fp);if(s==EOF){break;}elseif(s=='�......
  • 实验六
    实验代码实验任务4.hpp#include<iostream>#include<stdexcept>#include<cassert>usingnamespacestd;template<typenameT>classVector{private:T*ptr;intsize;public:Vector(intsize){if(size<0)throwstd:......
  • 实验六
    任务四1#include<stdio.h>2#defineN1034typedefstruct{5charisbn[20];//isbn号6charname[80];//书名7charauthor[80];//作者8doublesales_price;//售价9intsales_count;......
  • 实验六
    task4.hpp#include<iostream>#include<stdexcept>#include<cassert>usingnamespacestd;template<typenameT>classVector{private:T*ptr;intsize;public:Vector(intsize){if(size<0)......
  • 实验六
    4.hpp#include<iostream>#include<stdexcept>template<typenameT>classVector{private:intsize;T*p;public:Vector<T>(ints);Vector<T>(ints,Tvalue);Vector<T>(Vector<T>&x);......
  • 渗透测试实验报告一
    1. 实验目的和要求实验目的:理解网络扫描、网络侦察的作用;通过搭建网络渗透测试平台,了解并熟悉常用搜索引擎、扫描工具的应用,通过信息收集为下一步渗透工作打下基础。系统环境:KaliLinux2、Windows网络环境:交换网络结构2.实验步骤 1:利用Google语法搜索site:mit.eduinti......
  • 实验六
    实验任务4vector.hpp#include<iostream>#include<stdexcept>#include<cassert>usingnamespacestd;template<typenameT>classVector{private:T*ptr;intsize;public:Vector(intsize){if(size<0)......
  • 实验三-电子公文传输系统1-个人贡献
    实验三-电子公文传输系统1-个人贡献任务详情1简述你完成的工作2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?3你们小组总共的文档数?你贡献的文档数?相关链接?主要处理完成的工作1我完成了项目冲刺的5和6两天的实现情况的撰写,编写了部分后端代码和系统的使用指南2......
  • 实验6
    任务1:#define_CRT_SECURE_NO_WARNINGS//P286例8.17//对教材上的程序作了微调整,把输出学生信息单独编写成一个函数模块//打印不及格学生信息和所有学生信息程分别调用#include<stdio.h>#include<string.h>#defineN 3 //运行程序输入测试时,可以把这个数组改小一......
  • 实验7_文件应用编程
    4.task_4 1#include<stdio.h>2#include<string.h>3#defineN1000045intmain()6{7intcount,i,t=0;8charx[N];9FILE*fp;10fp=fopen("D:\\data4.txt","r");11while(!feof(fp))......