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;
}
【EPI】通过位运算求集合的全排列
最新推荐文章于 2024-05-12 20:01:39 发布