#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;
}
版权声明:本文为ur_ytii原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。