//函數包裝在一個容器類里
//調用此函數可輸入任意個整數(-1為退出條件可根據情況更改)(內存滿足條件)
#ifndef dataRecoder_H #define dataRecoder_H #include<iostream> using namespace std; class dataContainer { public: dataContainer() { data[0]=0;//為數組自動填充一個數據,滿足排序時哨兵的占用 size++; } void dataIput() { int alength = length;//退出循環方法二用一個臨時變量來記錄當前的length for (int i = size; i < alength; i++)//第一種方法用length { int count = 0;//方法一定義局部的變量count記錄是否自身調用, //錄入數組 int adata; cin >> adata; if (adata == -1) { break; } data[i] = adata; size++; //判斷與進行擴容 if (size >= length) { int *temp = new int[length * 2]; for (int j = 0; j < length; j++) { temp[j] = data[j]; } delete[]data; data = temp; length = length * 2; //count++;//記錄為調用,等下直接跳出for循環 dataIput(); } //lenth以變用count退出循環 /*if (count>0) { break; }*/ } } void print() { for (int i = 1; i < size; i++) { cout << data[i] << " "; } } int * getData() { return data; } int getSize() { return size; } private: int length = 10; int *data=new int[length]; int size = 0; }; #endif