數的排列的遞歸實現-C++ STL實現
#include <iostream>#include <vector> #include "iterator" #include "algorithm" #include "string" #include "stdio.h" using namespace std; ostream_iterator<int> oi(cout,""); int icount = 0; void pailie(vector<int> vectNum,vector<int> &result,int start, int n) { if(start == n) { //copy(result.begin(),result.end(),oi); //cout<<" "; icount++; return; }; int i; for(i=0;i<vectNum.size();i++){ result[start] = vectNum[i]; vector<int> vectNew = vectNum; vectNew.erase(vectNew.begin()+i); pailie(vectNew,result,start+1,n); } } void pailie(vector<int> vectNum,vector<int> &result, int n) { if(vectNum.size()<n) return; pailie(vectNum,result, 0, n); } void main() { int a[9] = {1,2,3,4,5,6,7,8,9}; vector<int> vectNum(a,a+9); int n=6; vector<int> result(n); pailie(vectNum, result,n); cout<<endl<<icount<<endl; } </pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!