Моей первой мыслью было, что оно может перебалансировать дерево только после вставки / удаления всего диапазона. Поскольку на практике вся операция встроена, это представляется более вероятным, чем количество вызовов функций.
Проверка заголовков GCC на моем локальном компьютере, похоже, это не так - и в любом случае, я не знаю, как найти компромисс между снижением активности перебалансировки и потенциально увеличенным временем поиска промежуточных вставок в несбалансированное дерево , сработает.
Может быть, это считается проблемой QoI, но в любом случае использование наиболее выразительного метода, вероятно, лучше, не только потому, что оно спасает вас от написания цикла for
и наиболее четко показывает ваше намерение, потому что это дает возможность авторам библиотек выполнять более агрессивную оптимизацию в будущем без необходимости знать и изменять свой код.