采用一个动态数组存储数据,有插入,追加,删除,删除元素的功能。
用链表有点浪费空间,用动态数组又增加了delete 和 new的操作。
下面代码采用动态数组的方式。
// 定义一个类模板MyArray,具有求数组长度、插入元素、追加元素、删除元素、查找元素的功能,并在main()加以验证。
#include <iostream>
template<typename T>
class MyArray
{
private:
T *a;
int len;
public:
MyArray():a(NULL),len(0){}
MyArray(int n):len(n){a = new T[n];}
MyArray(int n,T x):len(n){a = new T[n]; memset(a,x,sizeof(T)*n); }
~MyArray(){delete [] a;}
int size() const;
bool insert(int i,T a);
bool push_back(T a);
bool find(T a);
bool deleteNum(int i);
T & operator[](int i);
void printall() const;
};
template<typename T>
int MyArray<T>::size() const{
return len;
}
template<typename T>
bool MyArray<T>::find(T b){
for(int i=0;i<len;i++)
if(b == a[i])
return true;
return