• 有序数组(类模板)


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

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

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

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

    测试程序:

    #include <iostream>
    using namespace std;
    
    /* 请在这里填写答案 */
    
    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;
    }
    

    答案:

     1 template <class T>
     2 class MyArray
     3 {
     4     T *data;
     5     int size;
     6 public:
     7     MyArray(int size)        //构造函数
     8     {
     9         this->size = size;
    10         data = new T[size];
    11 
    12         for(int i(0); i < size; i++)
    13             cin >> *(data + i);
    14     };
    15     void sort()
    16     {
    17         T temp;
    18 
    19         for(int i(0); i < size - 1; i++)        //冒泡
    20             for(int j(0); j < size - 1; j++)
    21                 if(*(data + j) > *(data + j + 1))
    22                 {
    23                     temp = *(data + j);
    24                     *(data + j) = *(data + j + 1);
    25                     *(data + j + 1) = temp;
    26                 }
    27     };
    28     void display()        //输出函数
    29     {
    30         for(int i(0); i < size - 1; i++)
    31             cout << *(data + i) << " ";
    32 
    33         cout << *(data + size - 1) << endl;
    34     };
    35     ~MyArray();
    36     bool check();
    37 };
  • 相关阅读:
    CLOUD COMPUTING MADE EASY by Cary Landis and Dan Blacharski
    浅析JSONP
    Xpages 执行的生命周期
    LotusScript类的继承
    苹果公司的UI交互设计师Bret Victor演讲 Inventing on Principle
    ajax
    Aptana 汉化方法
    删除数据库连接脚本
    让Visual Studio 也支持JS代码折叠 [ Visual Studio | #region | #endregion ]
    power designer简单教程
  • 原文地址:https://www.cnblogs.com/wzzdeblog/p/10822087.html
Copyright © 2020-2023  润新知