C++ 设计一个类模板,有数据成员T data[size],有求最大值的方法getMax()和排序的方法sort(),模板参数T可以实例化成int、char、double、float、string等。
#include <iostream>
#include <string>
using namespace std;
template<typename T,int size>
class Data {
T data[size];
public:
Data() {
cout << "input " << size << "datas:" << endl;
for (int i = 0; i < size; i++) {
cin >> data[i];
}
}
void show() {
cout << size << " datas:" << endl;
for (int i = 0; i < size; i++) {
cout << data[i] << "\t";
}
cout << endl;
}
T getMax();
void insort();
};
//输出最大值
template<typename T,int size>
T Data<T, size>::getMax() {
T max = data[0];
for (int i = 1; i < size; i++) {
if (data[i] > max) {
max = data[i];
}
}
return max;
}
//直接插入排序
template<typename T, int size>
void Data<T, size>::insort() {
T temp;
int i = 0, j = 0;
for (i = 1; i < size; i++) { // 数组的下标是从0开始的
// 这里从第二个数开始枚举 即假定第一个数是有序的
temp = data[i];
j = i;
// 这里temp 临时储存每一次需要排序的数
while (j >= 1 && temp < data[j - 1]) {
data[j] = data[j - 1];
j--;
}
data[j] = temp;
}
}
int main() {
Data<int, 5> d;
d.show();
string lie(30,'-');
cout << lie << endl;
cout << d.getMax() << endl;
cout << "after sort:" << endl;
d.insort();
d.show();
system("pause");
return 0;
}
分类:
C++基础第一卷
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探