寫兩個stl程式,並對他們進行分析設計,結果如下:
1.#include
#include
#include
using namespace std;
int main()
;vectorvec(a,a+6);//建立vector
vector::size_type i;
cout<<"遞增陣列:";
for(i=0;i
#include
using namespace std;
const int n = 4;
int arr[n] = ;
int main()
while(next_permutation(arr,arr+n));
return 0;
}實驗步驟:
(1)1.由於程式用到stl中的vector容器,所以需要加上標頭檔案#include
2.先定義乙個陣列a[6],然後建立有6個整型元素的vector容器,**如下:
vectorvec(a,a+6);//建立vector
然後輸出這組數
3.利用make_heap(vec.begin(),vec.end())函式找出這組數的最大值,pop_heap(vec.begin(),vec.end())函式移除最大值,移除最大值後輸出這組數,用vec.insert(vec.begin(),90)函式在序列頭部插入元素,最後輸出這個序列
4.編寫程式,上機執行除錯
5.檢視結果
(2)1.next_permutation是stl中專門用於排列的函式,執行需要包含標頭檔案#include
2.定義乙個整型陣列arr[n],這裡的n定義為4,const int n = 4.利用prev_permutation(arr,arr+n)將arr裡的資料按降序排列
5.編寫程式,上機執行除錯
6.檢視結果
實驗結果:
1.遞增陣列:5 9 12 60 62 65
最大值:65
移除最大值後輸出序列:62 60 12 5 9
在序列頭部插入元素後的序列:90 62 60 12 5 9
2.1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 1 3
2 4 3 1
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 1 2
3 4 2 1
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 1 2
4 3 2 1
C STL實現全排列
next permutation函式 組合數學中經常用到排列,這裡介紹乙個計算序列全排列的函式 next permutation start,end 和prev permutation start,end 這兩個函式作用是一樣的,區別就在於前者求的是當前排列的下乙個排列,後乙個求的是當前排列的上乙個...
C STL全排列的簡單實現
next permutation函式 組合數學中經常用到排列,這裡介紹乙個計算序列全排列的函式 next permutation start,end 和prev permutation start,end 這兩個函式作用是一樣的,區別就在於前者求的是當前排列的下乙個排列,後乙個求的是當前排列的上乙個...
全排列程式
昨天筆試又碰到全排列,不幸的是居然寫錯了。回來後又仔細把當時的思路完善了一下,c 如下 include stdafx.h include using namespace std define maxsize 5 void swap int a,int b void quanpailie int a,...