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 回答