7-1 数组模板1 分数 30 作者 J.Liau 单位 泉州师范学院 编写一个使用类模板对数组进行排序、查找和显示所有元素值的程序,要求如下: template<typename T> class MyArray { …… }; 用于对T类型的数组进行排序、查找、显示所有元素,构造函数有两个参数:传递数组首地址和数组元素个数。主函数中实例化MyArray 产生模板类Array和Array,输入两个数组的长度,再依次输入各元素的值,调用相应的成员函数完成:输出数组的原序列、从键盘输入需要查找的元素值,完成查找(如有相同的元素,则返回找到的第一个数位置)、对数组进行由小到大排序,输出排序后的结果。 输入描述: 输入6行数据: 第1行:int型数组元素的个数 第2行:int型数组元素的值 第3行:double型数组元素的个数 第4行:double型数组元素的值 第5行:要查找的int型数据值 第6行:要查找的double数据值 输出描述: 原int型序列 查找数据所在的位置 排序后的int型序列 原double型序列 查找数据所在的位置 排序后的double型序列 输入样例: 9 6 3 8 1 9 4 7 5 2 6 2.3 6.1 1.5 8.4 6.7 3.8 9 8.5 输出样例: array1: 原序列:6 3 8 1 9 4 7 5 2 9在array1中的位置:5 排序后:1 2 3 4 5 6 7 8 9 array2: 原序列:2.3 6.1 1.5 8.4 6.7 3.8 8.5在array2中不存在 排序后:1.5 2.3 3.8 6.1 6.7 8.4

时间: 2024-01-07 21:03:39 浏览: 32
这是一道程序设计题目,需要编写代码实现要求。以下是一个可能的代码实现,供参考: ``` #include <iostream> #include <algorithm> using namespace std; template<typename T> class MyArray { private: T* data; int size; public: MyArray(T* data, int size) { this->data = data; this->size = size; } void display() { for (int i = 0; i < size; i++) { cout << data[i] << " "; } cout << endl; } int search(T value) { for (int i = 0; i < size; i++) { if (data[i] == value) { return i; } } return -1; } void sort() { std::sort(data, data + size); } }; int main() { int n1, n2; cin >> n1; int* a = new int[n1]; for (int i = 0; i < n1; i++) { cin >> a[i]; } MyArray<int> array1(a, n1); cout << "array1: " << endl; cout << "原序列: "; array1.display(); int value1; cin >> value1; int pos1 = array1.search(value1); if (pos1 == -1) { cout << value1 << "在array1中不存在" << endl; } else { cout << value1 << "在array1中的位置:" << pos1 << endl; } array1.sort(); cout << "排序后:"; array1.display(); cin >> n2; double* b = new double[n2]; for (int i = 0; i < n2; i++) { cin >> b[i]; } MyArray<double> array2(b, n2); cout << "array2: " << endl; cout << "原序列: "; array2.display(); double value2; cin >> value2; int pos2 = array2.search(value2); if (pos2 == -1) { cout << value2 << "在array2中不存在" << endl; } else { cout << value2 << "在array2中的位置:" << pos2 << endl; } array2.sort(); cout << "排序后:"; array2.display(); delete[] a; delete[] b; return 0; } ``` 此代码中,我们首先定义了一个类模板 `MyArray`,其中包含了排序、查找和显示数组元素的功能。在主函数中,我们实例化了两个 `MyArray` 对象,分别对应一个 `int` 类型的数组和一个 `double` 类型的数组。我们先输入两个数组的长度和各自的元素值,然后对每个数组依次调用相应的成员函数完成题目要求,并输出结果。 需要注意的是,在实现 `MyArray` 类的成员函数时,我们借助了 C++ 标准库中的 `std::sort` 函数进行排序,这需要包含 `<algorithm>` 头文件。在搜索函数中,如果找到了目标元素,我们返回其索引;否则,返回 `-1` 表示未找到。

相关推荐

最新推荐

recommend-type

网络编程网络编程网络编程

网络编程网络编程网络编程网络编程
recommend-type

setuptools-5.4.zip

Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
recommend-type

基于树莓派智能小车(H5页面操作移动+实时显示摄像头内容+各类传感器)源码+详细文档+全部资料齐全 高分项目.zip

【资源说明】 基于树莓派智能小车(H5页面操作移动+实时显示摄像头内容+各类传感器)源码+详细文档+全部资料齐全 高分项目.zip基于树莓派智能小车(H5页面操作移动+实时显示摄像头内容+各类传感器)源码+详细文档+全部资料齐全 高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
recommend-type

2024-01-03-【办公自动化】Python执行Windows命令.md

2024-01-03-【办公自动化】Python执行Windows命令
recommend-type

基于FPGA的FS-FBMC调制器的设计源码+全部资料齐全.zip

【资源说明】 基于FPGA的FS-FBMC调制器的设计源码+全部资料齐全.zip基于FPGA的FS-FBMC调制器的设计源码+全部资料齐全.zip 【备注】 1、该项目是高分课程设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过mac/window10/11/linux测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。