首页 > 其他分享 >实验六_OOP_张文瑞_202213260018

实验六_OOP_张文瑞_202213260018

时间:2023-12-17 16:59:23浏览次数:35  
标签:张文瑞 int Vector vec OOP template output 202213260018 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,OOP,template,output,202213260018,size
From: https://www.cnblogs.com/zhangwenrui/p/17909298.html

相关文章

  • Hadoop YARN生产环境核心配置参数
    1.ResourceManager相关配置参数说明默认值备注yarn.resourcemanager.scheduler.class配置调度器,默认为容量调度器(Apache)org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler对并发度要求高,首选公平调度器,对并发度要求不高,则......
  • Hadoop YARN
    1.Yarn资源调度器Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。1.Yarn基础架构Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。1.......
  • Hadoop 数据压缩
    1.概述1.好处&坏处优点:减少磁盘IO、减少磁盘存储空间缺点:增加CPU开销2.压缩的原则运算密集型的Job,少用压缩IO密集型的Job,多用压缩2.MR支持的压缩编码1.压缩算法对比介绍压缩格式Hadoop自带?算法文件扩展名是否可切片换成压缩格式后,原来的程序是否需要修改......
  • Hadoop快速入门
    Hadoop快速入门一、大数据思维分而治之所谓“分而治之”,就是把一个复杂的算法问题按一定的“分解”方法分为等价的规模较小的若干部分,然后逐个分别找出各部分的解,再把各部分的解组成整个问题的解。传统的计算都是基于内存去完成的,但是内存是有限的,数据量太大,导致无法在较短......
  • vsftpd服务器登入失败,返回550 OOPS 错误码,cannot locate user specified in 'guest_us
    原因:使用虚拟用户配置vsftpd后,/etc/vsftpd/vsftpd.conf文件中guest_username配置不正确解决方式1:修改vsftpd.conf文件中guest_username为正确的用户名,然后重启vsftpd,命令如下systemctlrestartvsftpd如何寻找正确的用户名?在创建虚拟vsftpd服务程序用于存储文件的根目录以及......
  • java: 通过URL读取hadoop HDFS
    packagetju;importorg.apache.hadoop.fs.FsUrlStreamHandlerFactory;importorg.apache.hadoop.io.IOUtils;importjava.io.InputStream;importjava.net.MalformedURLException;importjava.net.URL;importjava.net.URLStreamHandlerFactory;publicclassReadF......
  • hadoop:通过Configuration读取hdfs
    packagetju;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FSDataInputStream;importorg.apache.hadoop.fs.FSDataOutputStream;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io......
  • netty源码:(1)NioEventLoopGroup
    EventLoopGroupbossGroup=newNioEventLoopGroup();不加参数创建NioEventLoopGroup的话,会使用cpu核数*2作为bossGroup的线程数。......
  • Hadoop 数据类型及序列化
    1.Hadoop数据类型Java类型HadoopWritable类型BooleanBooleanWritableWritableWritableWritableWritableWritableWritableWritableWritableWritable2.为何Hadoop有自身序列化与反序列化Java自身的序列化除去本身Bean的数据......
  • 面向对象(OOP)
    面向对象(OOP)什么是面向对象面向对象的思想物以类聚,分类的思维模式,思考问题首先思考解决问题需要哪些分类,然后对各类分别思考。面向对象适合处理复杂的问题,适合处理需要多人协作的问题。面向对象编程的本质:以类的方式组织代码,以对象的组织(封装)数据三大特性:封装......