ぜんはいち


文字列S(重複する文字がある場合がある)が与えられ、辞書順に従って小さいから大きいまで、Sに含まれる文字からなるすべての配列が出力される.例えば、S="1312"であり、出力は:
1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 Input入力文字列S(Sの長さ<=9、0-9のアラビア数字のみ)Output出力Sに含まれる文字からなる全ての配列Input例1312 Output例1123 1213 1231 1312 1321 2113 2131 2311 3121 3211
STL:STLコンテナはいくつかのテンプレートクラスであり、vector(ベクトル、配列類似)、list(リスト、チェーンテーブル類似)、deque(双方向キュー)、set(集合)、map(マッピング)、stack(スタック)、queue(キュー)、priority_など、多くの組織データの一般的な方法を提供しています.Queue(優先キュー)など、テンプレートのパラメータでコンテナ内の要素タイプを指定できます.STLアルゴリズムはいくつかのテンプレート関数であり、for_のような簡単な操作から、かなりの有用なアルゴリズムと操作を提供している.each(stable_のように複雑に遍歴)sort(安定ソート).STL反復器は,アルゴリズムとコンテナを結びつけるためのC中のポインタの一般化である.ほとんどのSTLアルゴリズムは反復器によって要素シーケンスにアクセスして動作し、STLの各コンテナもコンテナ内の要素にアクセスするために独自の反復器を定義している.興味深いことに、普通のポインタも反復器のように働くことができます.STLに慣れると、多くの機能がわずか数行で実現できることがわかります.STLによって、私たちは優雅で効率的なコードを構築することができ、あなた自身が手作業で実現したコードよりも効果的です.STLのもう一つの特徴は、ソースコード方式で無料で提供されていることであり、プログラマーはこれらのコードを自由に使用できるだけでなく、ソースコードを学ぶことができ、自分の必要に応じて修正することもできる.C++標準では、STLは次のヘッダファイルのセットに編成されています(ただし、.h接尾辞はありません!):algorithm/deque/functional/iterator/list/map/memory/numeric/queue/set/stack/utility/vector/
/*         ,   STL      next_permutation()
 STL           (                
    next_permutation(star,end),
                         ,    star,end
*/
#include
#include
#include
#include
using namespace std;
int main()
{
    int i,n;
    char s[12];
    gets(s);
    n=strlen(s);
    sort(s,s+n);
    do{
        puts(s);
        printf("
"); }while(next_permutation(s,s+n)); }