#include <iostream>
using namespace std;
template<class T>
class ARR {
private:
T *arr;
int len;
public:
ARR() {
arr = (T*)malloc(1 * sizeof(T));
len = 0;
}
void Insert(T e) {
cout << "插入" << e << endl;
arr = (T*)realloc(arr,sizeof(T));
arr[len] = e;
len++;
}
void Delete(int n) {
GetE(n);
cout << "DELETE\t" << arr[n-1] << endl;
for (int i = n - 1; i < len - 1; i++)
arr[i] = arr[i + 1];
len--;
}
void GetE(int n) {
cout << n << "号元素为" << arr[n - 1] << endl;
}
void getlen() {
cout << "目前共有" << len << "个元素"<<endl;
}
};
int main()
{
ARR<int>arr;
for (int i = 0; i < 10; i++)
arr.Insert(i + 1);
arr.getlen();
arr.Delete(4);
arr.getlen();
return 0;
}
arr = (T*)realloc(arr,sizeof(T));
这个问题也遇到过,但我一般就用 new
比如,一个 int 数组:
int * a = new int [len]