我需要访问字符串中所有可能数量的字符组合。没有使用Any循环,因为我必须过滤数千个记录。循环可以给出性能问题。 让我们举一个例子: 任何自定义方法 ABCD ===>> ABCD,ABDC,ACBD,ACDB,ADCB,BACD,BADC,BCAD,BCDA,BDAC,BDCA,CADB,CBDA,CDBA,CBAD,DABC,DBCA,DCBA,DCAB ......
先谢谢
答案 0 :(得分:1)
事实上,C ++标准库中有一个函数:std::next_permutation。以下是链接中的示例,适用于您的情况。
#include <algorithm>
#include <string>
#include <iostream>
int main()
{
std::string s = "ABCD";
std::sort(s.begin(), s.end());
do
{
std::cout << s << '\n';
}
while(std::next_permutation(s.begin(), s.end()));
}
在线here