将std :: next_permutation与2D Array一起使用

时间:2016-03-22 09:52:03

标签: c++ algorithm permutation

我想打印数组AAA的所有排列。我无法弄清楚函数std::next_permutation的第二个参数?

#include <algorithm>

char AAA[4][4] = {"abc","123","ABC"}; 

do
{
    printf("%s %s %d\n",AAA[0],AAA[1],AAA[2]);

}   while( std::next_permutation( AAA, ???? ));

应该是&AAA[3]还是其他什么?

1 个答案:

答案 0 :(得分:0)

这将是

 while( std::next_permutation( std::begin(AAA), std::end(AAA)));

或(更有说服力的是,如果您知道AAA4个元素)

 while( std::next_permutation( AAA, AAA + 4));

AAA可能最好是std::stringstd::vector<std::string>的数组,但如果循环要遍历所有排列,则需要排序。

如果你std::cout流输出而不是使用printf(),那么它将使C ++人员更少一些。