#include<iostream> #define Max 100 using namespace std; template<class T> class Sample{ T A[Max]; int n; public: Sample(){} Sample(T a[],int i); int seek(T c); void disp() { for (int i=0; i<n; i++) if(i==0) cout<<A[i]; else cout<<" "<<A[i]; cout<<endl; } }; template<class T> Sample<T>::Sample(T a[],int i) { n=i; for(int j=0;j<Max;j++) A[j]=a[j]; } template<class T> int Sample<T>::seek(T c) { for(int i=0;i<n;i++) { if(A[i]==c) { return i; } } return -1; } int main(){ char a[]="acegkmpwxz"; Sample<char>s(a,10); cout<<"元素序列:"; s.disp(); cout<<"元素'g'的下标:"<<s.seek('g')<<endl; double b[] = {1.1,2.2,3.3,4.9,5.8}; Sample<double>t(b, 5); cout << "元素序列:"; t.disp(); cout << "元素'5.8'的下标:" << t.seek(5.8) << endl; return 0; }
时间: 2024-04-01 16:32:23 浏览: 15
这段代码定义了一个模板类Sample,用于实现查找元素下标的功能。主要包括以下几个部分:
1. 定义模板类Sample。其中,模板类型为T,包含一个数组A和数组元素个数n,以及构造函数Sample(T a[],int i)和成员函数seek(T c)和disp()。
2. 在Sample类中定义构造函数Sample(T a[],int i),用于初始化数组A和元素个数n。该构造函数的参数为一个数组a和数组元素个数i。
3. 在Sample类中定义成员函数seek(T c),用于查找指定元素c在数组A中的下标。如果找到则返回下标,否则返回-1。
4. 在Sample类中定义成员函数disp(),用于输出数组A的所有元素。
5. 在主函数中,定义了两个Sample类的对象s和t,分别是char类型和double类型的数组,并调用了disp()和seek()函数输出元素序列和查找元素下标的结果。
整个程序实现了一个通用的查找元素下标的功能,可以处理不同类型的数组。
相关问题
#include<iostream> #include<cstdio> using namespace std;是什么意思
#include<iostream> #include<cstdio> using namespace std; 是C++中的预处理指令,用于引入头文件和命名空间。
1. #include<iostream> 是引入iostream头文件,其中包含了输入输出流的定义,例如cout和cin等。
2. #include<cstdio> 是引入cstdio头文件,其中包含了C语言标准输入输出函数的定义,例如printf和scanf等。
3. using namespace std; 是使用std命名空间,std是C++标准库的命名空间,其中包含了很多常用的函数和类。
这些预处理指令的作用是为了在程序中能够使用输入输出流和标准库函数,使得程序更加方便和简洁。
#include <iostream> #include<algorithm> #include<cmath> #include <queue> using namespace std;
#include <iostream>:这是C++标准库中的头文件,用于输入输出流操作,包括cin、cout等。
#include<algorithm>:这是C++标准库中的头文件,用于提供各种算法操作,如排序、查找等。
#include<cmath>:这是C++标准库中的头文件,用于提供数学函数操作,如绝对值、平方根等。
#include <queue>:这是C++标准库中的头文件,用于提供队列操作,包括入队、出队等。
using namespace std;:这是C++的命名空间声明,表示使用std命名空间,可以直接使用std中的函数和对象。