In the verify_sets(std::vector<set_t>& sets, uint64_t threshold, size_t rounds) functions the outermost loop should be
for (auto& s: sets) {...} instead of or (auto s: sets) {...}. Otherwise the s.erase(...) call inside the for loop will not modify the set_t elements contained in the sets argument, i.e. the conflicting elements are not removed.
In the
verify_sets(std::vector<set_t>& sets, uint64_t threshold, size_t rounds)
functions the outermost loop should befor (auto& s: sets) {...}
instead ofor (auto s: sets) {...}
. Otherwise thes.erase(...)
call inside the for loop will not modify theset_t
elements contained in thesets
argument, i.e. the conflicting elements are not removed.