1 #include <iostream> 2 #include <initializer_list> 3 #include <memory> 4 using namespace std; 5 6 template <class T,int n> 7 class myarray 8 { 9 private: 10 T * p; 11 public: 12 myarray(initializer_list<T> mylist) 13 { 14 //开辟内存 15 p = new T[n]; 16 //内存清零 17 memset(p, 0, sizeof(T)*n); 18 int length = mylist.size(); 19 if (length > n) 20 { 21 abort(); 22 } 23 else 24 { 25 int i = 0; 26 //数据填充 27 for (auto j : mylist) 28 { 29 p[i] = j; 30 i++; 31 } 32 } 33 } 34 void show() 35 { 36 for (int i = 0; i < n; i++) 37 { 38 cout << p[i] << endl; 39 } 40 } 41 42 //模板排序 43 void sort() 44 { 45 for (int i = 0; i < n - 1; i++) 46 { 47 for (int j = 0; j < n - 1 - i; j++) 48 { 49 if (p[j] < p[j + 1]) 50 { 51 T temp = p[j]; 52 p[j] = p[j + 1]; 53 p[j + 1] = temp; 54 } 55 } 56 } 57 } 58 59 myarray() 60 { 61 delete[]p; 62 } 63 }; 64 65 void main() 66 { 67 myarray<int, 10> my1 = { 1,2,3,4,5,6,7,8,9 }; 68 my1.sort(); 69 my1.show(); 70 cin.get(); 71 }