string a = "working";
string b = "soaked";
set<char> setA(a.begin(), a.end());
set<char> setB(b.begin(), b.end());
vector<char> common;
set_intersection(setA.begin(), setA.end(), setB.begin(), setB.end(),
back_inserter(common));
copy(common.begin(), common.end(), ostream_iterator<char>(cout));
In fact, if further processing is not required at the intersection, you can send it directly to cout:
set_intersection(setA.begin(), setA.end(), setB.begin(), setB.end(),
ostream_iterator<char>(cout));
source
share