C++ 文字列を途中経過を確認しながら辞書順にする

next_permutation

[始め,終わり]の範囲を起点として順当に辞書順にしていく。

使い方

string s = "cab";
sort(s.begin(), s.end());
do{
      cout << s <<endl;
}while(next_permutation(s.begin(),s.end()));

出力例

abc
acb
bac
bca
cab
cba


このようにnext_permutationを使うことにより簡単に並び替えの途中経過を知ることができます。