C STL程式 全排列,刪除 插入元素。

2021-08-27 15:07:40 字數 1429 閱讀 3030

寫兩個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,...