Есть struct node { int pos; }; Есть std::vector<node> размера N. Есть поток событий, которые меняют pos каждого узла. Нужно мейнтейнить информацию о том, где находится большинство, то есть nth_element для значения n = N/2+1. Проблема в том что nth_element имеет линейную сложность, а меняется позиция у 2-3 узлов в секунду, подошёл бы интрузивный heap, которого в С++ нет.