生成字符串向量的所有组合

时间:2013-03-09 19:03:07

标签: c++ algorithm combinations

我正在尝试解决一些UVA的问题,我想生成一个字符串数组的所有可能组合。例如:

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

所以程序必须打印:

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

1 个答案:

答案 0 :(得分: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) );