补全以下代码采用模板类技术定义一个数组类Array, 类的声明如下面程序体中所示,请完成代码填空,使程序能正确运行。 【输入形式】 数组元素个数 以空格间隔的数组元素 要查找的数字 【输出形式】 被查找的元素在数组中的位置,如果数据不存在,则输出-1 排序后的数组元素 【样例输入】 5 1 2 3 4 5 3 【样例输出】 2 1 2 3 4 5 【样例输入】 5 1 -2 -3 4 5 3 【样例输出】 -1 -3 -2 1 4 5 #include<iostream> using namespace std; const int MAX_SIZE = 5; template<class T> class Array { T* pData; int nSize; public: Array(int n); //构造函数 ~Array(); //析构函数 //下标运算符重载 T& operator[](int idx){ return pData[idx]; } int Find(T& obj); //查找函数 void Sort(); //排序函数 }; int main() { int cnt = 0; cin >> cnt; if (cnt == 0) return 0; Array<int> ar(cnt); for (int i = 0; i < cnt; i++) cin >> ar[i]; int temp = 0; cin >> temp; int index = ar.Find(temp); cout << index << endl; ar.Sort(); cout << ar[0]; for (int i = 1; i < cnt; i++) cout << " " << ar[i]; return 0; }
时间: 2023-12-03 08:43:03 浏览: 68
```cpp
#include<iostream>
#include<algorithm>
using namespace std;
const int MAX_SIZE = 5;
template<class T>
class Array {
T* pData;
int nSize;
public:
Array(int n); //构造函数
~Array(); //析构函数
//下标运算符重载
T& operator[](int idx){
return pData[idx];
}
int Find(T& obj); //查找函数
void Sort(); //排序函数
};
template<class T>
Array<T>::Array(int n) {
pData = new T[n];
nSize = n;
for (int i = 0; i < nSize; i++)
cin >> pData[i];
}
template<class T>
Array<T>::~Array() {
delete[] pData;
}
template<class T>
int Array<T>::Find(T& obj) {
for (int i = 0; i < nSize; i++)
if (pData[i] == obj)
return i;
return -1;
}
template<class T>
void Array<T>::Sort() {
sort(pData, pData + nSize);
}
int main() {
int cnt = 0;
cin >> cnt;
if (cnt == 0) return 0;
Array<int> ar(cnt);
int temp = 0;
cin >> temp;
int index = ar.Find(temp);
cout << index << endl;
ar.Sort();
cout << ar[0];
for (int i = 1; i < cnt; i++)
cout << " " << ar[i];
return 0;
}
```
阅读全文