push_back() может быть тяжелым в зависимости от контейнера. Если вы используете его в векторе, попробуйте зарезервировать заранее размер, если вы его знаете, или вместо этого зарезервируйте большие блоки для уменьшения расходов на распределение.
UPDATE:
Честно говоря, его слишком расплывчатым вопрос. tidy() & isConsistent() - это черные ящики и неизвестное, что они делают, как они это делают, и если они могут сделать это лучше. Таким образом, комментирование эффективности кода в функции может быть красной селедкой.
Использование списка в качестве контейнера может быть не лучшим, если не требуется быстрый ввод и удаление в середине пути через контейнер. Вектор может быть лучшим вариантом и должен использоваться таким образом, чтобы уменьшить выделение до минимума (для перераспределения потребуется копия всего содержимого контейнера, поэтому чем больше она будет медленнее, чем push_back(), предпочитайте резерв() если возможно).
Также не сообщается информация о контексте использования этой функции. то есть это может быть неэффективность функции, скорее, как она называется и как часто она называется, может быть узким местом.
Что такое 'm_intervals'? – arrowd
Что делает 'tidy()' и 'isConsistent()' do? –
Когда вы говорите, что не работает достаточно быстро, по отношению к чему? Скорее вы ожидаете? Другая реализация, которая делает то же самое быстрее? Нужна точка отсчета. – lfgtm