64,650
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<string>
using namespace std;
template<class T>
class Array
{
private:
T *ptr;
int len;
public:
Array(int l);
~Array();
void sort();
void search(T s);
void show();
};
template<class T>
Array<T>::Array(int l)
{
len = l;
ptr = new T[len];
cout << "input array:";
for (int i = 0; i < len; i++)
{
cin >> *(ptr + i);
}
}
template<class T>
Array<T>::~Array()
{
delete[]ptr;
}
template<class T>
void Array<T>::sort()
{
int i, j;
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (*(ptr + i) < *(ptr + j)) {
T tmp;
tmp = *(ptr + i);
*(ptr + i) = *(ptr + j);
*(ptr + j) = tmp;
}
}
}
}
template<class T>
void Array<T>::search(T s)
{
int i;
for (i = 0; i < len&&*(ptr + i) != s; i++);
if (i < len) {
cout << s << " is in the array" << endl;
}
else {
cout << s << " is not in the array" << endl;
}
}
template<class T>
void Array<T>::show()
{
for (int i = 0; i < len; i++) {
cout << *(ptr + i) << " ";
}
cout << endl;
}
int main()
{Array<string> a2(5);
a2.show();
a2.sort();
a2.show();
a2.search("as");
return 0;
}
template<class T>
void Array<T>::sort()
{
int i, j;
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (*(ptr + i) < *(ptr + j)) {
T tmp;
tmp = *(ptr + i);
*(ptr + i) = *(ptr + j);
*(ptr + j) = tmp;
}
}
}
}
template<class T>
void Array<T>::search(T s)
{
int i;
for (i = 0; i < len&&*(ptr + i) != s; i++);
if (i < len) {
cout << s << " is in the array" << endl;
}
else {
cout << s << " is not in the array" << endl;
}
}