#include<iostream.h> class Array { private: int* p; int n;//数组总长 int cnt;//元素个数 public: Array() { p = NULL; n = 0; cnt = 0; } Array(int n) { p = new int[n]; this->n = n; cnt = 0; } ~Array() { if(p != NULL) delete[] p; } void Travel() { for(int i=0;i<this->cnt;i++) cout<<*(p+i)<<" "; cout<<endl; } int Add(int val) { if(cnt == n) { cout<<"数组已满!!!"<<endl; return -1; } p[cnt] = val; cnt++; return 0; } int InsertAt(int val,int k) { if(k <0 || k>n-1) { cout<<"插入位置越界!!"<<endl; return -1; } if(cnt == n) { cout<<"数组已满!!!"<<endl; return -1; } for(int i = cnt-1;i>=k;i--) { p[i+1] = p[i]; //*(p+i+1) = *(p+i) } p[k] = val; return 0; } int DelAt(int k) { if(k<0 || k>cnt-1) { cout<<"删除元素越界!!!"<<endl; return -1; } for(int i=k;i<cnt-1;i++) { *(p+i) = *(p+i+1); } cnt--; return 0; } void sort() { if(cnt == 0) return; int k; for(int i=0;i<cnt-1;i++) { for(int j=0;j<cnt-1-i;j++) { if( *(p+j) > *(p+j+1) ) { k = *(p+j); *(p+j) = *(p+j+1); *(p+j+1) = k; } } } } int GetAt(int k) { return *(p+k); } void SetVal(int k,int val) { *(p+k) = val; } int GetLen() { return n; } int GetCnt() { return cnt; } }; void main() { Array a(10); for(int i=0;i<9;i++) a.Add(i); a.Travel(); a.InsertAt(100,3); a.Travel(); a.DelAt(5); a.Travel(); a.sort(); a.Travel(); }