Как работает std::vector::clear под капотом? С++
Мне стало интересно, как работает функция clear у std::vector и насколько это затратная операция. В документации сказано, что трудоемкость линейная в зависимости от числа элементов в векторе. Значит ли это, что метод вызывает деструкторы у каждого элемента? Или же он просто сдвигает итератор end в начало? Как я понял, метод не уменьшает размер внутреннего контейнера в векторе, а значит он, по идее, должен просто сдвигать итератор end в начало. Но почему тогда сложность линейная, а не O(1)?