1

私はいくつかの UVA の問題を解決しようとしています。文字列の配列のすべての可能な組み合わせを生成したいと考えています。例えば ​​:

    string str[]={"abcd","efg","hij"};

したがって、プログラムは次のように出力する必要があります。

    >abcd efg hij
    >abcd hij efg
    >hij abcd efg
    >hij efg abcd 
    >efg abcd hij
    >efg hij abcd
4

1 に答える 1

1

あなたはSTLのnext_permutationアルゴリズムを探していると思います。

あなたの例に適用すると、次のようになります。

std::sort (str, str+3);

std::cout << "The 3! possible permutations with 3 elements:\n";
do {
  std::cout << str[0] << ' ' << str[1] << ' ' << str[2] << '\n';
} while ( std::next_permutation(str, str+3) );
于 2013-03-09T19:15:03.853 に答える