Программа С++
Ваша задача реализовать функцию assign. Ваша реализация оценивается по следующим критериям в следующем порядке:
Соблюдены требования к типу: вы должны придерживаться приведенной выше спецификации типа ключа и значения.
Корректность: Ваша программа должна работать interval_mapс описанным выше поведением. В частности, обратите внимание на валидность итераторов. Недопустимо разыменовывать конечные итераторы. Рассмотрите возможность использования проверочной реализации STL, такой как поставляемая с Visual C++ или GCC.
Каноничность: представление m_mapдолжно быть каноническим.
Время выполнения: представьте, что ваша реализация является частью библиотеки, поэтому она должна быть оптимальной. Кроме того:
Не делайте больших операций над K и V больше, чем необходимо, потому что вы не знаете, насколько быстры операции над K / V ; помните, что построения, разрушения и присваивания также являются операциями.
Не делайте более одной операции амортизированного O(log N ), в отличие от O(1), времени выполнения, где N — количество элементов в m_map.
В противном случае отдайте предпочтение простоте, а не незначительным улучшениям скорости.
Фотографии задачи прилагаются к проекту