| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 412 人关注过本帖
标题:为什么不能对数组元素实现排序输出呢?
只看楼主 加入收藏
最后的执着
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-8-20
收藏
 问题点数:0 回复次数:1 
为什么不能对数组元素实现排序输出呢?
#include<iostream>
using namespace std;
#pragma once
template<typename T>
class Arrays
{
public:
    Arrays();
    ~Arrays();
    int  add(T a);
    int getcount()
    {
        return count;
    }
    T &operator[](int i)//下表运算符[]重载
    {
        return data[i];
    }
protected:
    void destroy();//销毁原来的数组
    void realloc(int addlenght = 10);//对数组进行扩容

public:
    void show();//显示数组元素
    void order();
private:
    T * data;
    int count;
    int maxlenght;

};
 Arrays.cpp
#include "Arrays.h"
template<typename T>
Arrays<T>::Arrays()
{
    data = NULL;
    count = maxlenght = 0;
    realloc();
}

template<typename T>
Arrays<T>::~Arrays()
{
    destroy();
}
template<typename T>
void Arrays<T>::destroy()
{
    if (maxlenght == 0)
        return;
    delete[]  data;
    count = maxlenght = 0;
    data = NULL;

}
template<typename T>
void Arrays<T>::realloc(int addlenght )
{
    int newlenght = maxlenght + addlenght;
    T * temp = new T[newlenght];
    if (data != NULL)
    {
        for (int i = 0; i < count; i++)//复制原来的数据
            temp[i] = data[i];
        delete[] data;//释放原来的空间
    }
    maxlenght = newlenght;
    data = temp;//指向新的空间
}
template<typename T>
int  Arrays<T>::add(T a)
{
    if (count == maxlenght)
        realloc();//容器已满自动扩容
    data[count++] = a;
    return count;
}
template<typename T>
void Arrays<T>::show()
{
    for (int i = 0; i < count; i++)
        cout << data[i] << "\t";

}
template<typename T>
void Arrays<T>::order()
{
    for (int i = 0; i < count - 1; ++i)

    {
        int index = i;
        int j;
        for (j = i + 1; j < count; ++j)
        if (data[j] < data[index])
            index = j;
        if (index != i)
        {
            T temp;
            temp = data[j];
            data[j] = data[index];
            data[index] = temp;

        }
    }

}
搜索更多相关主题的帖子: private include public return count 
2014-09-17 17:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
你的问题是什么?
是编译失败,贴出编译器给出的错误提示;
是运行失败,贴出你的输入、实际输出、你期待的输出。

我大体看了一下,模板竟然分离编译,又无main函数
2014-09-18 08:28
快速回复:为什么不能对数组元素实现排序输出呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038007 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved