; поэтому вы не можете сказать, было ли перераспределение.

+, STL у нас есть шаблон класса<vector>, Мы знаем, что это поддерживаетO(1) произвольный доступ и хвостовая модификация. У меня вопрос, почему мы не определяем push_front или pop_front в<vector>?

Одно из объяснений состоит в том, что если мы хотим вставить / вытолкнуть элемент впереди вектора, мы должны сдвинуть каждый элемент в массиве на один шаг, и это будет стоитьO(n).

Но я думаю, что это не всегда так. Учитывая, что если мы реализуем<vector> с круговой решеткой мы можем достичьO(1) нажмите / поп с фронта и хвоста вектора, не теряя способностиO(1) произвольный доступ Так что лично я не могу думать ни о какой причине, а только о незначительных накладных расходах, чтобы не реализоватьpush_front/pop_front за<vector>, Какие-нибудь мысли?

Ответы на вопрос(3)

Ваш ответ на вопрос