幂集问题 子集问题
Posted FocusA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了幂集问题 子集问题相关的知识,希望对你有一定的参考价值。
对于给定的正整数n(n≥1),求1~n构成的集合的所有子集(幂集)
#include <iostream> #include <vector> using namespace std; vector<vector<int> > ps; //为vector<int> 重载输出运算符 //一层层来。 ostream &operator <<(ostream &os, vector<int> vec) { vector<int>::iterator ittt = vec.begin(); for (;ittt != vec.end(); ++ittt) { os << *ittt; } return os; } // 幂集问题 vector<vector<int> > subSet(int n) { vector<vector<int> > ps1; vector<int> s; vector<vector<int>>::iterator it; ps.push_back(s); for (int i = 1; i <= n; i++) { ps1=ps; for (it = ps1.begin(); it != ps1.end(); it++) { (*it).push_back(i); } for (it = ps1.begin(); it != ps1.end(); it++) { ps.push_back(*it); } } return ps; } int main() { int n; cin >> n; subSet(n); vector<vector<int> >::iterator itt; cout << "子集为:"; for (itt = ps.begin(); itt != ps.end(); itt++) { cout << *itt << ","; } cout <<endl; cout<< "子集个数:"; cout << ps.size(); }
输出:
包含空集
以上是关于幂集问题 子集问题的主要内容,如果未能解决你的问题,请参考以下文章