if (std::find_first_of(set1.begin(), set1.end(), set2.begin(), set2.end()) == set1.end())
вместо того, чтобы написать предикатик isEmptyIntersection из 5 строк, работающий линейно, а не квадратично. А всё из-за [expletive omitted] Степанова, не предусмотревшего в STL нормальные методы работы с множествами. Чтоб ему в аду черти code reviews делали!