返回某集合的所有子集
2016-01-24 00:24
387 查看
#include<iostream> #include<vector> using namespace std; vector<vector<int>> getSubsets(vector<int>& set, int index){ vector<vector<int>> allsubsets; if ((int)set.size() == index){ vector<int> s; allsubsets.push_back(s); } else{ allsubsets = getSubsets(set, index + 1); int item = set[index]; vector<vector<int>> moreSubsets; for (int i=0; i < (int)allsubsets.size(); i++){ vector<int> newsubset; for (int j = 0; j < (int)allsubsets[i].size(); j++) newsubset.push_back(allsubsets[i][j]); newsubset.push_back(item); moreSubsets.push_back(newsubset); } for (int j = 0; j < (int)moreSubsets.size(); j++) allsubsets.push_back(moreSubsets[j]); } return allsubsets; } int main(){ vector<int> set; set.push_back(1); set.push_back(2); set.push_back(3); set.push_back(4); vector<vector<int>> subset = getSubsets(set, 0); for (int i = 0; i < (int)subset.size(); i++){ for (int j = 0; j < (int)subset[i].size(); ++j){ cout << subset[i][j] << " "; } cout << endl; } cin.get(); return 0; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Ruby中的集合编写指南
- C#数据结构之顺序表(SeqList)实例详解
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(七):数据结构详解
- Lua教程(二):C++和Lua相互传递数据示例
- AVG 7.5.1.43 版本 序列号 集合
- SQL Server游标的使用/关闭/释放/优化小结
- 编写高质量代码改善C#程序――使用泛型集合代替非泛型集合(建议20)
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- C++联合体转换成C#结构的实现方法
- C#检查指定对象是否存在于ArrayList集合中的方法
- C++高级程序员成长之路