在c++的標準庫STL中,next_permutation()函數用於查找序列的完整排列。
函數原型:
模板< class BidirectionalIterator >
Boolnext_permutation(
BidirectionalIterator_First。
BidirectionalIterator_Last
);
< class BidirectionalIterator, classBinaryPredicate >
Boolnext_permutation(
BidirectionalIterator_First。
BidirectionalIterator_Last,
BinaryPredicate_Comp
);
兩個重載函數,第二個具有謂詞參數_Comp,其中只有兩個參數的版本,默認謂詞函數是“小於”。
返回值:Bool類型(如果當前數組是列表中的最後壹個,則為false)
例1(int):
Intmain(){
Inta[]={3,1,2};
{做
Cout < < [0] < < " " < < [1] < <”“< < [2] < < endl;
}while(next_permutation(a,a+3));
返回0;
}
輸出:312/321,因為原始序列沒有以最小的字典排列開始。
所以妳想要得到所有的排列
Inta[]={3,1,2};A[]={1,2,3};
例2(字符串)
Intmain(){
字符串STR。
Cin > > STR。
Sort(STR.Thebegin(),STR.End());
{做
Cout << STR << endl;
}while(next_permutation(STR.Thebegin(),STR.Theend()));
返回0;
}
擴展資料:
註意事項:
函數三要素:自變量、因變量、對應規則。
(1)自變量(函數):壹個智與其數量有關,這個數量中的任何壹個值都可以在其他數量中找到相應的固定值。
(2)因變量(函數):因變量(函數)隨著自變量的變化而變化,當自變量取唯壹值時,因變量(函數)有且只有與之對應的唯壹值。
(3)對應規則是功能的三個要素之壹。壹般來說,在函數符號y=f(x)中,“f”是對應的規則,方程y=f(x)表明,對於定義域內的任意x值,在對應規則“f”的作用下,可以得到上域中唯壹的y值。