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

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

时间:2023-12-12 16:13:07浏览次数:29  
标签:文件 int Vector 实验 vec template output 模板 size

实验任务4
Vector.hpp源代码

 1 #include <iostream>
 2 #include <stdexcept>
 3 
 4 template <typename T>
 5 class Vector {
 6     private:
 7         int size;
 8         T *vec;
 9     public:
10         Vector<T>() = default;
11         Vector<T>(int s);
12         Vector<T>(int s, T t);
13         Vector<T>(const Vector<T> &v);
14         ~Vector<T>();
15         int get_size() const;
16         T& at(int i);
17         T& operator[](int i);
18         template <typename T1>
19         friend void output(const Vector<T1> &v);
20 };
21 template <typename T>
22 Vector<T>::Vector(int s)
23     : size{s} {
24     vec = new T[s];
25 }
26 template <typename T>
27 Vector<T>::Vector(int s, T t)
28     : size{s} {
29     vec = new T[s];
30     for (int i = 0; i < s; i++)
31         vec[i] = t;
32 }
33 template <typename T>
34 Vector<T>::Vector(const Vector<T> &v)
35     : size{v.size} {
36     vec = new T[v.size];
37     for (int i = 0; i < v.size; i++)
38         vec[i] = v.vec[i];
39 }
40 template <typename T>
41 Vector<T>::~Vector() {
42     delete[] vec;
43 }
44 template <typename T>
45 int Vector<T>::get_size() const {
46     return size;
47 }
48 template <typename T>
49 T& Vector<T>::at(int i) {
50     if (i > size) throw std::out_of_range("下标越界");
51     else return vec[i];
52 }
53 template <typename T>
54 T& Vector<T>::operator[](int i) {
55     if (i > size) throw std::out_of_range("下标越界");
56     else return vec[i];
57 }
58 template <typename T1>
59 void output(const Vector<T1> &v) {
60     for (int i = 0; i < v.size; i++)
61         std::cout << v.vec[i] << ", ";
62     std::cout << "\b\b \n";
63 }
View Code task4.cpp源代码
 1 #include <iostream>
 2 #include "Vector.hpp"
 3 
 4 void test() {
 5     using namespace std;
 6 
 7     int n;
 8     cin >> n;
 9     
10     Vector<double> x1(n);
11     for(auto i = 0; i < n; ++i)
12         x1.at(i) = i * 0.618;
13 
14     output(x1);
15 
16     Vector<int> x2(n, 777);
17     Vector<int> x3(x2);
18 
19     output(x2);
20     output(x3);
21 
22     x2.at(0) = 42;
23     output(x2);
24 
25     x3[0] = 666;
26     output(x3);
27 }
28 
29 int main() {
30     test();
31 }
View Code 运行测试截图

 

实验任务5
task5.cpp源码
 1 #include<iostream>
 2 #include<fstream>
 3 
 4 void output(std::ostream &out) {
 5     for (int i = 0; i <= 26; i++) {
 6         out.width(2);
 7         if (i == 0) out << ' ';
 8         else out << i;
 9         for (int j = 0; j <= 26; j++) {
10             out << ' ';
11             if (i == 0) out << (char)('a' + (i + j) % 26);
12             else out << (char)('A' + (i + j) % 26);
13         }
14         out << '\n';
15     }
16 }
17 void output() {
18     output(std::cout);
19     std::ofstream ofile;
20     ofile.open("cipher_key.txt");
21     output(ofile);
22     ofile.close();
23 }
24 int main() {
25     output();
26 }
View Code

运行测试截图

 

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

相关文章

  • 实验6
    //P286例8.17//对教材上的程序作了微调整,把输出学生信息单独编写成一个函数模块//打印不及格学生信息和所有学生信息程分别调用#include<stdio.h>#include<string.h>#defineN10//运行程序输入测试时,可以把这个数组改小一些输入测试typedefstructst......
  • calico网络实验
    一.部署1.手动安装calicocurlhttps://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/calico.yaml-Okubectlapply-fcalico.yaml 官网地址:https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstarthttps://docs.tigera.io/cal......
  • shell脚本模板-从git拉取代码并打包部署
    source/etc/profile.~/.bash_profile#拉取能耗后端代码cd/usr/local/testmvncleanecho-e"从git华为云拉取后端代码"#首次clonegitpulltest.gitecho-e"从git华为云代码拉取完成"#工程打包echo-e"开始打jar包"mvnpackage-Dmaven.test.skip=true#删除原来的jar包rm......
  • allure直接到文件夹下,双击index.html无法展示数据,显示loading
    因为直接allure报告浏览器是打不开的,需要用allure命令渲染之后打开参能展示渲染效果解决方法:1、allureopen报告所在地址的文件夹名称/   allureopen测试报告/         2、写txt文件,内容:allureopen测试报告/,修改后缀为bat        ......
  • PKI实验
    实验概述实验目的  公钥加密是当今安全通信的基础,但是当通信的一方向另一方发送公钥时,却容易遭受到中间人攻击。根本问题在于没有一个简单的方式验证公钥所有者的身份。也就是说当收到一个公钥和它的所有者信息时,无法确定该公钥确实为这个所有者所拥有。公钥基础设施(PKI)就是解......
  • 实验六
    #include<stdio.h>#defineN10typedefstruct{charisbn[20];//isbn号charname[80];//书名charauthor[80];//作者doublesales_price;//售价intsales_count;//销售册数}Book;voidoutput(B......
  • 生活记录:和大师姐及实验室师兄弟一起吃鸡公煲留念——集积分兑换“毛绒玩具小猪”
    在实验室时每每出去聚餐吃饭总是喜欢去附近的鸡公煲,那家也是有个积分兑换毛绒玩具的活动,虽然最后也没有攒够积分而那家店在疫情中也没有熬过去,不过当年吃鸡公煲时是一直惦记着这个玩偶的,虽然未能实现自己的小目标但是这个经历还是蛮值得纪念的。   可爱的毛绒玩具——“小粉猪”......
  • java实现文件上传和下载
    本文实例为大家分享了java实现文件上传和下载的具体代码,供大家参考,具体内容如下文件的上传upload:文件上传客户端通过表单的文件域file 把客户端的文件上传保存到服务器的硬盘上页面首先对上传的表单有以下要求:必须有文件域:inputtype=file表单提交方式:method=post表......
  • blob 下载文件type是否必须设置
    又遇到了一件鬼打墙的事,欲哭无泪。1几天前,有个bug:blob文件下载,如果下载非txt文件,比如图片、xlsx,下载后的文件无法正确显示。//下载文件asyncdownload(row,prop){constres=awaitresourceDownload(row[prop.field+"fileId"]);//res为blob......
  • pdf.js打开后的pdf文件
    原文链接:https://www.cnblogs.com/the-big-dipper/p/16880180.html 1、html项目方法:<ahref="../../pdf/web/viewer.html?file=../../pdf/1.pdf"target="_blank">文件</a>最重要的是href的地址。href地址的组成:pdfjs的viewer.html地址 + ?file=+ pdf文件地址pdfjs......