Если у меня есть:next_permutation имеют различный результат после вызова в функции
bool shuffle(string s){
return next_permutation(s.begin(), s.end());
}
int main(int argc, char* argv[]){
string m = "abcde5";
do {
cout << m << endl;
} while(shuffle(m));
Я хотел бы получить:
abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 ... abced5
который НЕ что я хочу
Однако, если я do:
int main(int argc, char* argv[]){
string m = "abcde5";
do {
cout << m << endl;
} while(next_permutation(m.begin(), m.end()));
Я хотел бы получить
abcde5 abce5d abced5 abd5ce abd5ec abdc5e abdce5 abde5c abdec5 abe5cd abe5dc abec5d abecd5 abed5c abedc5 ac5bde ac5bed ac5dbe ac5deb ac5ebd ac5edb acb5de acb5ed acbd5e acbde5 ... edcba5
, который , что я хочу.
В чем разница? Я посмотрел на next_permutation, похоже, что он возвращает bool, поэтому я действительно запутался.
Приятный улов, большое вам спасибо! – HoKy22