Use includes() function to check if one set contains another set
#include <algorithm> #include <iostream> #include <vector> using namespace std; void print(int elem) { cout << elem << " "; } int main(int argc, char** argv) { vector<int> setOne, setTwo, setThree; setOne.push_back(1); setOne.push_back(2); setOne.push_back(3); setTwo.push_back(2); setTwo.push_back(3); setTwo.push_back(4); // set algorithms work on sorted ranges sort(setOne.begin(), setOne.end()); sort(setTwo.begin(), setTwo.end()); if (includes(setOne.begin(), setOne.end(), setTwo.begin(), setTwo.end())) { cout << "The second set is a subset of the first\n"; } if (includes(setTwo.begin(), setTwo.end(), setOne.begin(), setOne.end())) { cout << "The first set is a subset of the second\n"; } return (0); }