//Generate subset #include #include using namespace std; //m: 本次递归选原数组第几个 //n: 本次递归数组长度 //l: 给定数组长度 template T* sub(int m ,int n, int l, T* x, T* tmp){ if(m == l) { cout << "[ "; for(int i = 0; i < n; i++){ cout << tmp[i] << " "; } cout << " ]" << endl; return tmp; } //不选a[i] sub(m + 1, n, l, x, tmp); //选a[i] tmp[n] = x[m]; sub(m + 1, n + 1, l, x, tmp); } int main(){ //cin >> n; int n = 5; int num = pow(2 ,n); double** p; p = new double* [num]; for(int i = 0; i < num ; i++){ p[i] = new double[n]; } double* tmp = new double[n]; double arr[] = {1, 2, 3, 4, 5}; sub(0, 0, 5, arr, tmp); return 0; }