通过位运算可以很快按照字典序的枚举集合的元素.

    

#include <iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<1<<n;i++){
        for(int j=0;j<n;j++){
            a[n-j-1]=(i>>j)&1;
            }
        for(int j=0;j<n;j++){
            cout<<a[j];
            }
        cout<<endl;
    }
    return 0;
}

下: