首页 > 其他分享 >有序数组

有序数组

时间:2023-05-14 19:22:43浏览次数:29  
标签:数组 int MyArray pC pF 有序 data size

一.问题描述:

实现一个类模板,它可以接受一组数据,能对数据排序,也能输出数组的内容。

每行输入的第一个数字为0,1,2或3:为0时表示输入结束; 为1时表示将输入整数,为2时表示将输入有一位小数的浮点数,为3时表示输入字符。

如果第一个数字非0,则接下来将输入一个正整数,表示即将输入的数据的数量。

从每行第三个输入开始,依次输入指定类型的数据。

二.代码输入:

#include <iostream>
using namespace std;

template<class T>
class MyArray{
private:
    T *data;
    int size;
 
public:
    MyArray(int s);
    ~MyArray();
    void sort();
    void display();
    bool check();
};
 
template<class T>
MyArray<T>::MyArray(int s){
        size = s;
        data = new T[size];//注意分配内存,main函数调用的时候只是动态的创建一个对象
        for(int i=0;i<size;i++)
            cin>>data[i];
    }
 
template<class T>
void MyArray<T>::display(){
    for(int i=0;i<size;i++){
        cout<<data[i];
        if(i<size-1)
            cout<<" ";
    }
    cout<<endl;
}
 
template<class T>
void MyArray<T>::sort(){
        for(int i=0;i<size-1;i++)
            for(int j=0;j<size-i-1;j++)
                if(data[j]>data[j+1]){
                    T temp = data[j];
                    data[j] = data[j+1];
                    data[j+1] = temp;
                }
    }

template<class T>
MyArray<T>::~MyArray(){ delete[] data;}

template<class T>
bool MyArray<T>::check(){
    int i;
    for(i=0;i<size-1;i++)
        if(data[i]>data[i+1]) { cout<<"ERROR!"<<endl;return false;}
    return true;
}
int main( )
{
    MyArray<int> *pI;
    MyArray<float> *pF;
    MyArray<char> *pC;
    int ty, size;
    cin>>ty;
    while(ty>0){
        cin>>size;
        switch(ty){
            case 1: pI = new MyArray<int>(size);   pI->sort(); pI->check(); pI->display(); delete pI; break;
            case 2: pF = new MyArray<float>(size); pF->sort(); pF->check(); pF->display(); delete pF; break;
            case 3: pC = new MyArray<char>(size);  pC->sort(); pC->check(); pC->display(); delete pC; break;
        }
        cin>>ty;
    }
    return 0;
}

 

标签:数组,int,MyArray,pC,pF,有序,data,size
From: https://www.cnblogs.com/lzh0416/p/17399926.html

相关文章

  • 数组的逆序输出
    1数组的逆序输出1import java.util.Scanner; public class P1427 { public static Scanner input = new Scanner(System.in); public static void main(String[] args) { int [] arr = new int [100]; System.out.println("请输入多个正整数(输......
  • MATLAB代码:考虑电动汽车有序充放电的机组组合和最优潮流 关键
    MATLAB代码:考虑电动汽车有序充放电的机组组合和最优潮流关键词:电动汽车MILP最优潮流参考文档:《Abi-layeroptimizationbasedtemporalandspatialschedulingforlarge-scaleelectricvehicles》仿真平台:MATLABYALMIPGUROBI主要内容:机组组合采用原文相同的线性化方法最......
  • Scala 树状数组BIT模板
    Problem:6404.将数组清空目录CodeCodeobjectSolution{defcountOperationsToEmptyArray(nums:Array[Int]):Long={valn=nums.lengthvalid=Array.tabulate(n)(i=>i)valsortedId=id.sortWith((i,j)=>nums(i)-nums(j)<0)......
  • 数据结构-二维数组内存结构
    二维数组内存结构  逻辑上是二维的,再分配内存的时候,也是给他分配一维的内存行优先存储 行优先存储,M行N列的b[i][j]的存储地址=基地址+(i*N+j)*sizeof(ElemType)列优先存储 M行N列b[i][j]的存储地址=基地址+(j*M+i)*sizeof(ElemType)......
  • mysql8之json/数组的增删改查
    前言,类型必须是json,虽然text也可以,但是很多操作没法使用,比如查询,当然了,这种类型还可以存储数组类似varchar,设置JSON主要将字段的type是json,不能设置长度,可以是NULL但不能有默认值。创建jsonjson_array创建json数组json_object创建json对象查询jsonjson_contain......
  • MySQL8JSON数组函数之json_array_append、json_array_insert
    json_array_append、json_array_insert顾名思义就是向数组中追加和插入值,因为没有找到合适的例子,所以就使用官方的例子进行说明1、json_array_append向指定的位置后追加值,查询和修改的函数如下所示:updatetest_jsonsettest_json_array=json_array_append(test_json_array,......
  • Java数组之杨辉三角
    publicclassArrayTestor02{publicstaticvoidmain(String[]args){//构造杨辉三角int[][]yanghui=newint[10][];for(inti=0;i<yanghui.length;i++){int[]row=newint[i+1];yanghui[i]=row;......
  • #yyds干货盘点# LeetCode面试题:乘积最大子数组
    1.简述:给你一个整数数组nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个 32-位整数。子数组是数组的连续子序列。 示例1:输入:nums=[2,3,-2,4]输出:6解释: 子数组[2,3]有最大乘积6。示例......
  • vue2中数组和对象更改后视图不刷新解决办法
    vue2中,改变集合或数据某值时有时候并不会自动更新到视图上去,解决办法  1、官方推荐例如:projectList数组,show值点击一次改变一次方向<tdv-on:click="alertSub(index)"><ahref="javascript:;">{{item.}}</a></td>alertSub(index){this.projectLi......
  • 栈、数组、队列、串(408)
    栈、数组、队列、串栈定义:删除和输入都在同一端的线性表,后进先出顺序栈定义一个线性表,用栈顶指针来控制栈元素的进出。链式栈定义一个头结点,一直指向栈顶,插入新结点时,更新头结点。优点:不会溢出,空间无限共享栈两个栈分别放在栈顶和栈底,存入的数据向中间靠齐。优点:节省存储......