vector<vector<int> >b 二位数组的输出写法

#include<cstdio>
#include<algorithm>
#include<string.h>
#include<iostream>
using namespace std;
int main(){
    vector<int>a={0,0,1,1,1};
    vector<vector<int> >b;
    do{
        b.push_back(a);
    }while(next_permutation(a.begin(),a.end()));
    for(int i=0;i<b.size();i++){//b.size()=10,因为以上全排列共10种
        for(int j=0;j<b[i].size();j++)
            printf("%d ",b[i][j]);
        printf("\n");
    }
    return 0;
}

或用迭代器:

#include<cstdio>
#include<algorithm>
#include<string.h>
#include<iostream>
using namespace std;
int main(){
    vector<int>a={0,0,1,1,1};
    vector<vector<int> >b;
    do{
        b.push_back(a);
    }while(next_permutation(a.begin(),a.end()));
    for(vector<vector <int> >::iterator it=b.begin();it!=b.end();it++){
        for(vector<int>::iterator it2=(*it).begin();it2!=(*it).end();it2++)
            printf("%d ",*it2);
        printf("\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/ur_ytii/article/details/112634973