本文共 1667 字,大约阅读时间需要 5 分钟。
#include <iostream> #include <vector> #include <set> using namespace std; void PrintSet(set<int> & s); void PrintVector(vector< set<int> > & v); void MakeSet(set<int> & setofdst, vector< set<int> > & v); bool SelectFromSet(set<int> & setofdst, set<int> & setofsrc); /*void SetCin(set<int> & tmp);*/ const bool TRUE = 1; const bool FALSE = 0; int main() { vector< set<int> > vs; int n, m; cout << "n = "; cin >> n; cout << endl; cout << "m = "; cin >> m; static int k; set<int> tmp; for (int i = 0; i < n; i ++) { for (int j = 0; j < m; j ++) { tmp.insert(k++); } // SetCin(tmp); vs.push_back(tmp); tmp.clear(); } PrintVector(vs); set<int> setofdst; MakeSet(setofdst, vs); cout << "setofdst :" << endl; PrintSet(setofdst); // tmp.insert(1); // tmp.insert(2); // tmp.insert(3); // PrintSet(tmp); // tmp.insert(1); // PrintSet(tmp); } void PrintSet(set<int> & s) { set<int>::iterator si; for (si = s.begin(); si != s.end(); si++) { cout << *si << " "; } cout << endl; } void PrintVector(vector< set<int> > & v) { vector< set<int> >::iterator vi; for (vi = v.begin(); vi != v.end(); vi++) { PrintSet(*vi); } } void MakeSet(set<int> & setofdst, vector< set<int> > & v) { vector< set<int> >::iterator vi; for (vi = v.begin(); vi != v.end(); vi ++) { SelectFromSet(setofdst, *vi); } } bool SelectFromSet(set<int> & setofdst, set<int> & setofsrc) { size_t orgsizeofsetofdst = setofdst.size(); set<int>::iterator si; for (si = setofsrc.begin(); si != setofsrc.end(); si++) { setofdst.insert(*si); if (setofdst.size() != orgsizeofsetofdst) { return TRUE; } } return FALSE; } // void SetCin(set<int> & tmp) // { // int i = 0; // while (cin >> i) // { // tmp.insert(i); // } // }转载地址:http://txdqi.baihongyu.com/