#include "flexset.h" template void setunion(const flexset &A, const flexset &B,flexset &result){ int idxA=0, idxB=0; int sizeA=A.getSize(), sizeB=B.getSize(); if (A.empty()) {result=B;return;} if (B.empty()) {result=A;return;} result.clear(); do { //I dont like to rely on shortcut boolean operators, so //that's why I use double ifs X *whichadd=NULL; //1,2,3 (A,B, or both) if (idxA void setunion(flexset &A, const flexset &B){ flexset tmp=A; setunion(tmp, B, A); } template void setintersection(const flexset &A, const flexset &B,flexset &result){ int idxA=0, idxB=0; int sizeA=A.getSize(), sizeB=B.getSize(); result.clear(); if (A.empty() || B.empty()) return; //result={} do { //I dont like to rely on shortcut boolean operators, so //that's why I use double ifs X *whichadd=NULL; //1,2,3 (A,B, or both) if (idxA void setsymmetricdifference(const flexset &A, const flexset &B,flexset &result){ int idxA=0, idxB=0; int sizeA=A.getSize(), sizeB=B.getSize(); if (A.empty()) {result.clear(); return;} if (B.empty()) {result=A;return;} result.clear(); do { //I dont like to rely on shortcut boolean operators, so //that's why I use double ifs X *whichadd=NULL; //1,2,3 (A,B, or both) if (idxA void setdifference(const flexset &A, const flexset &B,flexset &result){ int idxA=0, idxB=0; int sizeA=A.getSize(), sizeB=B.getSize(); if (A.empty()) {result=A; return;} if (B.empty()) {result=A;return;} result.clear(); do { //I dont like to rely on shortcut boolean operators, so //that's why I use double ifs X *whichadd=NULL; //1,2,3 (A,B, or both) if (idxA void setdifferences(const flexset &A, const flexset &B,flexset &AMB,flexset &BMA){ int idxA=0, idxB=0; int sizeA=A.getSize(), sizeB=B.getSize(); if (A.empty()) {AMB.clear();BMA=B; return;} if (B.empty()) {BMA.clear();AMB=A;return;} AMB.clear(); BMA.clear(); do { X *whichaddA=NULL; X *whichaddB=NULL; if (idxA void setconvert(flexset &A, const flexset &B){ int idxA=0, idxB=0; int sizeA=A.getSize(), sizeB=B.getSize(); if (A.empty()) {return;} if (B.empty()) { cout<<"SetConvert - UHOH! A is not contained in B!"<