编制如下两个函数模板,用于完成所指定的功能;并编制主函数对它们进行调用: template <class T> Print(T *p, int n) {...} template <class T> void GtLever(T *p, int n, T lever){...} 其中,函数模板Print将数组p的前n个元素显示在屏幕上;函数模板Gtlever将p数组前n个元素中大于lever的各个元素, 依次移动到该数组的最前部,而后通过调用Print将p中大于lever的各元素显示在屏幕上。对于cha
时间: 2024-02-06 10:11:12 浏览: 141
c++模板学习
r类型的数组,Print函数应该按照字符数组输出,GtLever函数中lever也应该是char类型的。
以下是实现上述功能的代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
template<class T>
void Print(T *p, int n) {
for(int i = 0; i < n; i++) {
cout << p[i] << " ";
}
cout << endl;
}
template<class T>
void GtLever(T *p, int n, T lever) {
int i = 0, j = 0;
while(i < n) {
if(p[i] > lever) {
swap(p[i], p[j]);
j++;
}
i++;
}
Print(p, j);
}
int main() {
int a[] = {1, 2, 3, 4, 5, 6};
char b[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g'};
Print(a, 6);
GtLever(a, 6, 3);
Print(b, 7);
GtLever(b, 7, 'c');
return 0;
}
```
输出:
```
1 2 3 4 5 6
4 5 6
a b c d e f g
d e f g
```
阅读全文