【EPI】通过位运算求集合的全排列

来源:互联网 发布:linux如何编写脚本 编辑:程序博客网 时间:2024/05/04 08:55
void generate_power_set(vector<string>& s){    for(int i = 0; i < (1 << s.size()); i++){        int x = i;        while(x) {            int tar = (log10(x & ~(x-1))) / log10(2);            cout <<s[tar];            if(x &= x-1)                cout <<',';        }        cout <<endl;    }};int main(int argc, const char * argv[]) {    vector<string> vec;    vec.push_back("A");    vec.push_back("B");    vec.push_back("C");    generate_power_set(vec);    return 0;}

0 0