私が持っている場合:
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 ... abcd5
これは私が欲しいものではありません
しかし、もしそうなら:
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 が返されるようで、今とても混乱しています。