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

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

时间:2023-12-17 21:25:32浏览次数:25  
标签:文件 const int Vector 实验 template output 模板 size

实验任务4

Vector.hpp

#pragma once

#include <iostream>
#include <stdexcept>
#include <string> using namespace std; template <typename T> class Vector { public: Vector (int x = 0, const T& value = T()); Vector (const Vector& other);int get_size() const; T& at(int e); T& operator[](int e); template<typename T1> friend void output (const Vector<T1>& v); private: T* data; int size; }; template <typename T> Vector<T>::Vector(int x, const T &value) : size(x) { data = new T[size]; for (int i = 0; i < size; ++i) { data[i] = value; } } template <typename T> Vector<T>::Vector(const Vector& other) : size(other.size) { data = new T[size]; for (int i = 0;i < size; ++i) { data[i] = other.data[i]; } } template<typename T> Vector<T>::get_size() const { return size; } template<typename T> T& Vector <T>::at(int e) { if(e >= size) { throw std::out_of_range("Index out of range"); } return data[e]; } template <typename T> T& Vector<T>::operator[](int e) { if(e >= size) { throw out_of_range("Index out of range"); } return data[e]; } template <typename T1> void output(const Vector<T1>& v) { for (int i = 0;i < v.size;++i) { cout << v.data[i] << ","; } cout << "\b \b" <<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();
}

 

 

 

 

 

实验任务5

task5.cpp

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

using namespace std;

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

int main()
{
    ofstream out;
    output(cout);
    out.open("cipher_key.txt");
    output(out);
    return 0; 
}

 

标签:文件,const,int,Vector,实验,template,output,模板,size
From: https://www.cnblogs.com/yzsya/p/17909538.html

相关文章

  • Vscode解决中文乱码和多文件操作
    一、解决多文件操作2.然后创建一个main文件、一个func.h文件、一个func.c文件分别写上代码这是main.c这是func.c文件这是func.h文件二、配置launch.json和tasks.json文件 将下面这个json文件复制拷贝到launch.json去:launch.json{//使用IntelliSense了解相关......
  • 调整archlinux分区及ext4文件系统大小
    参照https://wiki.archlinuxcn.org/wiki/Parted1.防止数据丢失有重要数据的话先备份,防止系统崩了数据没了可以的话先在虚拟机练习一下2.注意点要扩展分区及其文件系统,(1)先扩展分区(2)再扩展文件系统要收缩分区及其文件系统,(1)先收缩文件系统(2)再收缩分区这样做是因......
  • 实验6 模板类、文件I/O和异常处理
    Task4: vector.hpp:#include<iostream>#include<string>#include<stdexcept>usingnamespacestd;template<typenameT>classVector{private:T*data;intsize;public:Vector():data(nullptr),size(0){}Vector......
  • 实验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)......