获取所有可能的组合数

Get All possible number of combinations

本文关键字:组合 有可能 获取      更新时间:2023-10-16

我需要访问字符串中字符的所有可能组合数。不使用任何循环,因为我必须以数千次过滤记录。循环可能会给性能问题。让我们举个例子: 任何自定义方法ABCD ===>>ABCD,ABDC,ACBD,ACDB,ADCB,BACD,BADC,BCAD,BCDA,BCDA,BDAC,BDCA,BDCA,CADB,CADB,CBDA,CDBA,CDBA,CBAD,CBAD,DABC,DABC,DBCA,DCBA,DCBA,DCBA,DCAB,DCAB ..............

预先感谢

实际上C 标准库中有一个函数:STD :: NEXT_PERMUNT。这是链接中的示例,适用于您的案件。

#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()));
}

在线在线