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

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

时间:2023-12-16 22:23:48浏览次数:23  
标签:文件 int Vector 实验 vec template include 模板 size

任务4

#include <iostream>
#include <stdexcept>
#include <stdlib.h>

template <typename T>
class Vector {
    public:
        friend void output(const Vector<T1> &v);
        Vector<T>() = default;
        Vector<T>(int s);
        Vector<T>(int s, T t);
        Vector<T>(const Vector<T> &v);
        ~Vector<T>();
        int get_size() const;
        T& at(int i);
        T& operator[](int i);
        template <typename T1>
       
 private:
        int size;
        T *vec;
};
template <typename T>
Vector<T>::Vector(int s)
    : size{s} {
    vec = new T[s];
}
template <typename T>
Vector<T>::Vector(int s, T t)
    : size{s} {
    vec = new T[s];
    for (int i = 0; i < s; i++)
        vec[i] = t;
}
template <typename T>
Vector<T>::Vector(const Vector<T> &v)
    : size{v.size} {
    vec = new T[v.size];
    for (int i = 0; i < v.size; i++)
        vec[i] = v.vec[i];
}
template <typename T>
Vector<T>::~Vector() {
    delete[] vec;
}
template <typename T>
int Vector<T>::get_size() const {
    return size;
}
template <typename T>
T& Vector<T>::at(int i) {
    if (i > size) throw std::out_of_range("下标越界");
    else return vec[i];
}
template <typename T>
T& Vector<T>::operator[](int i) {
    if (i > size) throw std::out_of_range("下标越界");
    else return vec[i];
}
template <typename T1>
void output(const Vector<T1> &v) {
    for (int i = 0; i < v.size; i++)
        std::cout << v.vec[i] << ", ";
    std::cout << "\b\b \n";

#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.618;

    output(x1);

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

    output(x2);
    output(x3);

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

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

int main() {
    test();
}
task4.cpp

 

任务5

 1 #include<iostream>
 2 #include<iomanip>
 3 #include<fstream>
 4 
 5 using namespace std;
 6 
 7 void output(ostream &out) {
 8     for(int i=0;i<=26;i++){
 9         for(int j=0;j<=26;j++)
10         {
11             char c,b;
12             if(i==0&&j==0){
13                 char d = ' ';
14                 out<<setw(2)<<d;
15             }
16             else if(j==0&&i!=0){
17                 out<<setw(2)<<i;
18             }
19             else if(i==0&&j!=0){
20                 char c='a'+j-1;
21                 out<<setw(2)<<c;
22             }
23             else if(i!=0&&j!=0){
24                 char b=(i+j-1+26)%26+'A';
25                 out<<setw(2)<<b;
26             }
27 
28         }
29         out<<endl;
30     }
31 }
32 int main(){
33 
34     output(cout);
35 
36     ofstream outFile("cipher_key.txt");
37     output(outFile);
38     outFile.close();
39 
40     return 0;
41 }
task5.cpp

 

标签:文件,int,Vector,实验,vec,template,include,模板,size
From: https://www.cnblogs.com/fybbk/p/17908484.html

相关文章

  • 实验七
    #define_CRT_SECURE_NO_WARNINGS#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN100typedefstruct{longnumber;charname[N];charclass[N];}student;intmain(){FILE*f......
  • 实验七
    task4code1#include<stdio.h>23intmain(){4FILE*fp;5longcnt=0,c=0;6charch;78fp=fopen("data4.txt","r");9if(fp==NULL){10printf("failedtoopen");1......
  • 第四章:mapper映射文件存放位置、springboot支持事务
    一、mapper映射文件存放位置二、springboot支持事务......
  • 二、SpringBoot的配置文件
    1、核心配置文件properties2、核心配置文件yml3、两种核心配置文件同时存在4、设置maven私服仓库5、多环境下核心配置文件6、多环境下核心配置文件yml7、获取自定义配置8、将自定义配置映射到对象......
  • 一、Spring Boot的概述及pom文件和代码实现
    一、概述和四大特性二、学习创建springboot项目三、项目目录结构和pom文件内容四、springboot继承springmvc-查看springboot父工程pom五、代码的实现......
  • 实验三-电子公文传输系统1-个人贡献
    实验三-电子公文传输系统1-个人贡献1简述你完成的工作与组内成员相互配合协作,高效率完成任务参与组内文档的撰写工作负责了前端设计与数据库的建立2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?总共代码行数为55352行,其中大部分是gitee上的代码,我们组总共贡献......
  • Java jxl操作excel模板
    jxl操作excel模板创建工作簿FileexcelFile=newFile("fileName.xls");WritableWorkbookwtwb=Workbook.createWorkbook(excelFile);//创建工作簿创建工作表WritableSheetsheet=wtwb.createSheet(title,0);//创建sheet表设置默认列宽sheet.getSettings().s......
  • Chrome扩展的核心:manifest 文件(下)
    大家好,我是dom哥。这是我关于Chrome扩展开发的系列文章,感兴趣的可以点个小星星。在上篇和中篇中已经完成了对manifest文件中以下字段的解释:"manifest_version""name""version""description""icons""content_scripts""background""perm......
  • 实验6 模板类、文件I/O和异常处理
    实验任务4Vector.hpp1#pragmaonce23#include<iostream>4#include<stdexcept>56usingnamespacestd;78template<typenameT>910classVector{11private:12T*data;13size_tsize;1415public:16......
  • 实验7
    //将图书信息写入文本文件data1.txt#include<stdio.h>#defineN80typedefstruct{charname[N];//书名charauthor[N];//作者}Book;intmain(){Bookx[]={{"《雕塑家》","斯科特.麦克劳德"},{"《灯塔》",......