Вы не правы. std::set не обладает RandomAccess-итераторами (проще говоря, вы не можете тыкнуться в любой элемент множества за единичку, вам нужно будет итерироваться до него за О(n)), а значит, на очередной итерации бинпоиска вам придется итерироваться от его левой/правой границы до середины, что, очевидно, займет О(n) времени.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.