# include <iostream>
using namespace std;
template <typename T, int n>
class aa {
private:
T a[n];
int len;
public:
aa(T b[], int l) {
len = l;
for (int i = 0; i < len; i++)
a[i] = b[i];
}
void search(T x); // 查询
void sort(); // 排序
void insert(T y, int p); // 插入
void shanchu(T z); // 删除
};
template <typename T, int n> // 类模板
void aa <T, n>::search(T x) {
int i;
for (i = 0; i < len; i++)
if (a[i] == x) {
cout << x << endl; break;
}
if (i >= len)
cout << "No" << endl;
}
template <typename T, int n>
void aa <T, n>::sort() { // 冒泡排序
int i, j, s;
for (i = 0; i < len - 1; i++)
for (j = 0; j < len - i - 1; j++)
if (a[j] > a[j + 1])
swap(a[j], a[j + 1]);
for (s = 0; s < len; s++)
cout << a[s] << " ";
cout << endl;
}
void swap(int& x, int& y) { // 交换
int k;
k = x; x = y; y = k;
}
template <typename T, int n>
void aa <T, n>::insert(T y, int p) {
if ((p < 0) && (p > len)) return;
if (len == n) {
cout << "overflow"; return;
}
int i;
for (i = len - 1; i >= p; i--)
a[i + 1] = a[i];
a[p] = y;
len++;
for (int t = 0; t < len; t++)
cout << a[t] << " ";
cout << endl;
}
template <typename T, int n>
void aa <T, n>::shanchu(T z) {
int i;
for (i = 0; i < len; i++)
if (a[i] == z)
break;
for (int j = i; j < len; j++)
a[j] = a[j + 1];
for (int r = 0; r < len - 1; r++)
cout << a[r] << " ";
cout << endl;
}
void main() {
int b[] = { 3,5,2,4,8 };
aa<int, 10> w(b, 5);
int x, m, n, q;
cout << "请输入需要查找的字符:";
cin >> x;
cout << "查询结果:";
w.search(x);
cout << "排序结果:";
w.sort();
cout << "请输入需要插入的数字和位置:";
cin >> m >> n;
w.insert(m, n);
cout << "请输入删除的数字:";
cin >> q;
w.shanchu(q);
system("pause");
}
没有合适的资源?快使用搜索试试~ 我知道了~
C++类模板实现数组的排序以及增删查
共24个文件
tlog:6个
pdb:2个
vcxproj:1个
需积分: 0 8 下载量 67 浏览量
2023-06-06
21:12:13
上传
评论
收藏 12.15MB ZIP 举报
温馨提示
该代码使用C++编写,用户可以使用vs环境编译运行,源码可查看.cpp文件。 该段代码包含对数组的增删查以及排序的函数,采用面向对象的思路进行编写,其中应用了类模板,它是C++中一类特殊的数据类型,允许用户定义具有通用性的类。用户可以通过代码实例,了解类模板的语法等应用规范,包括实例化以及参数的使用。 本段代码以int类型为例实现功能,但类模板的特性使得数据类型可以依据需求而改变,因此用户可以在充分学习的基础上,举一反三,增加代码的可重用性。 本代码适用于初学面向对象编程,学习C++中类或类模板的学习者。希望该实例可以对大家有所帮助。
资源推荐
资源详情
资源评论
收起资源包目录
数组排序以及增删查等(类模板应用).zip (24个子文件)
Project1
.vs
Project1
v17
Browse.VC.db 15.57MB
.suo 29KB
ipch
AutoPCH
cf1771578e03a985
Դ.ipch 35.13MB
x64
Debug
Project1.pdb 1.41MB
Project1.exe 71KB
Project1
x64
Debug
vc143.pdb 404KB
Project1.tlog
CL.write.1.tlog 328B
CL.command.1.tlog 642B
link.command.1.tlog 1KB
link.read.1.tlog 3KB
link.write.1.tlog 338B
Project1.lastbuildstate 148B
CL.read.1.tlog 18KB
Դ.obj 85KB
Project1.exe.recipe 284B
Project1.ilk 724KB
vc143.idb 163KB
_IsIncrementalBuild 32B
Project1.log 196B
Project1.vcxproj 6KB
Project1.vcxproj.user 168B
Project1.vcxproj.filters 965B
Դ.cpp 2KB
Project1.sln 1KB
共 24 条
- 1
资源评论
jdbck_fyh
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功