首页 > 其他分享 >实验六

实验六

时间:2023-12-17 20:15:45浏览次数:29  
标签:int Vector 实验 output include ptr size

实验代码

实验任务4

.hpp

#include<iostream>
#include<stdexcept>
#include <cassert>
using namespace std;
template<typename T>
class Vector
{
private:
T* ptr;
int size;
public:

Vector(int size)
{
if (size < 0)
throw std::length_error("vector constructor:negative size");
this->size = size;
ptr = new T[this->size];
}
Vector(int size, T value)
{
if (size < 0)
throw std::length_error("vector constructor:negative size");
this->size = size;
ptr = new T[size];
for (auto i = 0; i < size; i++)
{
ptr[i] = value;
}

}
Vector(const Vector<T>& x)
{
size = x.size;
ptr = new T[size];
for (auto i = 0; i < size; i++)
{
ptr[i] = x.ptr[i];
}
}
~Vector()
{
delete[] ptr;
}
int get_size()
{ return size;
}
T& at(int i)
{
assert(i >= 0 && i < size);
return(ptr[i]);
}
T& at(int i) const
{
assert(i >= 0 && i < size);
return(ptr[i]);
}
T& operator[](int i)
{
return ptr[i];
}
friend void output(Vector<T> x)
{
for (auto i = 0; i < x.get_size(); i++)
cout << x.at(i) << ",";
cout << "\b\b\n";
}
};

.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();
}

实验结果:

实验代码:

.cpp

#include<iostream>
#include<fstream>
#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;
int j;
for (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,ptr,size
From: https://www.cnblogs.com/lwjddd/p/17909674.html

相关文章

  • 实验六
    任务四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))......
  • 实验6
    实验1代码1//P286例8.172//对教材上的程序作了微调整,把输出学生信息单独编写成一个函数模块3//打印不及格学生信息和所有学生信息程分别调用45#include<stdio.h>6#include<string.h>7#defineN3//运行程序输入测试时,可以把这个数......
  • 实验三-电子公文传输系统1-个人贡献
    个人贡献1、简述你完成的工作部分前端代码及文档撰写github项目管理协助设计系统前端布局2、你们小组总共的代码行数,你贡献的代码行数?相关代码链接?贡献的代码行数:985https://github.com/hexaosf/codegramhttps://github.com/hexaosf/codegram/blob/608d2056e40859360e0ea6......