1. 程式人生 > >STL C++全排列函式的使用

STL C++全排列函式的使用

這是一個神器,一個全排列的函式 next_permutation(arr,arr+5),下面介紹用法:

用函式得先匯入標頭檔案 #include<algorithm>

示例程式碼如下

#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
    //使用全排函式前先將陣列內容從小到大排序,不然直接結束
    int arr[5] = {1,2,3,4,5};
    do
    {
        for(int i = 0 ;i < 5;i++ )
        {
            printf("%d ",arr[i]);
        }printf("\n");
    }
    while(next_permutation(arr,arr+5));
    return 0;
}

大概內容是:

do{

對陣列操作

}while(next_permutation(陣列名,陣列名+長度));

示例程式碼中,for迴圈裡在順序列印陣列內容,這樣當while迴圈結束的時候,輸出的就是全排列了。因為while迴圈每迴圈一次,陣列內容就會變化一次排列,開始是從大到小排列,直到陣列內容從小到大的時候,排列就結束了。