Ąėćīščņģ next_permutation()
template < class BidirectionalIterator > bool next_permutation( BidirectionalIterator first, BidirectionalIterator last ); template < class BidirectionalIterator, class Compare > bool next_permutation( BidirectionalIterator first, |
BidirectionalIterator last, class Compare );
next_permutation()
įåšåņ ļīńėåäīāąņåėüķīńņü, īćšąķč÷åķķóž äčąļąēīķīģ [first,last), č, ń÷čņą’ åå ļåšåńņąķīāźīé, āīēāšąłąåņ ńėåäóžłóž ēą ķåé (ī ņīģ, źąź óļīš’äī÷čāąžņń’ ļåšåńņąķīāźč, ćīāīščėīńü ā šąēäåėå 12.5). Åńėč ńėåäóžłåé ļåšåńņąķīāźč ķå ńółåńņāóåņ, ąėćīščņģ āīēāšąłąåņ false, čķą÷å true. Ā ļåšāīģ āąščąķņå äė’ īļšåäåėåķč’ ńėåäóžłåé ļåšåńņąķīāźč čńļīėüēóåņń’ īļåšąņīš ģåķüųå ā źėąńńå żėåģåķņīā źīķņåéķåšą, ą āī āņīšīģ īļåšąöč’ ńšąāķåķč’ comp. Ļīńėåäīāąņåėüķūå īįšąłåķč’ ź next_permutation()
ćåķåščšóžņ āńå āīēģīęķūå ļåšåńņąķīāźč ņīėüźī ā ņīģ ńėó÷ąå, źīćäą čńõīäķą’ ļīńėåäīāąņåėüķīńņü īņńīšņčšīāąķą. Åńėč įū ā ļīźąēąķķīé ķčęå ļšīćšąģģå ģū ļšåäāąščņåėüķī ķå īņńīšņčšīāąėč ńņšīźó musil, ļīėó÷čā ilmsu, ņī ķå óäąėīńü įū ńćåķåščšīāąņü āńå ļåšåńņąķīāźč.
#include <algorithm> #include <vector> #include <iostream.h>
void print_char( char elem ) { cout << elem ; } void (*ppc)( char ) = print_char; /* ļå÷ąņąåņń’: ilmsu ilmus ilsmu ilsum ilums ilusm imlsu imlus imslu imsul imuls imusl islmu islum ismlu ismul isulm isuml iulms iulsm iumls iumsl iuslm iusml limsu limus lismu lisum liums liusm lmisu lmius lmsiu lmsui lmuis lmusi lsimu lsium lsmiu lsmui lsuim lsumi luims luism lumis lumsi lusim lusmi milsu milus mislu misul miuls miusl mlisu mlius mlsiu mlsui mluis mlusi msilu msiul msliu mslui msuil msuli muils muisl mulis mulsi musil musli silmu silum simlu simul siulm siuml slimu slium slmiu slmui sluim slumi smilu smiul smliu smlui smuil smuli suilm suiml sulim sulmi sumil sumli uilms uilsm uimls uimsl uislm uisml ulims ulism ulmis ulmsi ulsim ulsmi umils umisl umlis umlsi umsil umsli usilm usiml uslim uslmi usmil usmli */ int main() { vector<char,allocator> vec(5);
// ļīńėåäīāąņåėüķīńņü ńčģāīėīā: musil vec[0] = 'm'; vec[1] = 'u'; vec[2] = 's'; vec[3] = 'i'; vec[4] = 'l';
int cnt = 2; sort( vec.begin(), vec.end() ); for_each( vec.begin(), vec.end(), ppc ); cout << "\t";
// ćåķåščšóžņń’ āńå ļåšåńņąķīāźč ńņšīźč "musil" while( next_permutation( vec.begin(), vec.end())) { for_each( vec.begin(), vec.end(), ppc ); cout << "\t";
if ( ! ( cnt++ % 8 )) { cout << "\n"; cnt = 1; } }
cout << "\n\n"; return 0; |
}