設計一個類模板SeqList<T>,其中包含T型別的陣列data和其中實際元素個數n,另包含有相關成員函式,用于以生成該陣列、輸出陣列并用選擇排序方式對data中的資料進行排序。撰寫一個主函式定義整數序列和字符序列,并進行排序。
#pragma once
#include<iostream>
using namespace std;
template<class T>
class Sort
{
private:
T* data;
int n;
public:
Sort(T*, int);
void display();
~Sort();
};
后邊該如何寫?求指點求指點求指點!!
類模板太難了!
uj5u.com熱心網友回復:
#pragma once#include<iostream>
using namespace std;
template<class T>
class Sort{private: T* data;
int n;public: Sort(T*, int);
void display();
~Sort();
};
template<class T>
Sort<T>::Sort(T *d, int num){
int i, j, k, t;
n = num;
data = new T[n];
for (i = 0; i < n; i++) {
data[i] = d[i];
}
for (i = 0; i < n - 1; i++) {
k = i;
for (j = i + 1; j < n; j++)
if (data[j] < data[k])
k = j;
t = data[k];
data[k] = data[i];
data[i] = t;
}
}
template<class T>
void Sort<T>::display(){
for (int i = 0; i < n; i++)
cout << *(data + i) << "";
}
template<class T>
Sort<T>::~Sort(){
cout << "\n解構式被呼叫" << endl;
}
uj5u.com熱心網友回復:
#include<iostream>using namespace std;
#include"formwork.h"
int main(){
int *a, n, i, m;
char *s,ans;
do{
cout << "1.整數升序排列\n2.字串升序排序\n";
cout << "請選擇一個功能:";
cin >> m;
if (m == 1) {
cout << "陣列元素個數:";
cin >> n;
a = new int[n];
cout << "請輸入" << n << "個整數:";
for (i = 0; i < n; i++)
cin >> a[i];
Sort<int> sort1(a, n);
cout << "排序后陣列:";
sort1.display();
}
else if (m == 2) {
cout << "陣列元素個數:";
cin >> n;
s = new char[n];
cout << "請輸入" << n << "個字符:"; cin.ignore(1);
cin.getline(s, n);
int len = strlen(s);
Sort<char> sort1(s, len);
cout << "排序后字串:";
sort1.display();
} else cout << "沒有該功能!\n";
cout << "是否繼續?(y/n)";
cin >> ans;
} while (ans == 'y' || ans == 'Y'); system("PAUSE");
return 0;}
uj5u.com熱心網友回復:
這是我的代碼,但是字串排序后少一個字符,比如字串是cba,排序后就變成了 bc我找不出問題在哪,求指教

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/95843.html
標籤:C++ 語言
