В C++ стандартная библиотека предоставляет несколько контейнеров, которые позволяют эффективно вставлять элементы в начало:
std::deque
(double-ended queue): Этот контейнер оптимизирован для вставки и удаления элементов как в начале, так и в конце. Вставка в начало имеет амортизированную постоянную сложность O(1).
std::list
(doubly linked list): Связный список. Вставка в начало осуществляется путем изменения указателей головы списка. Сложность вставки в начало постоянная - O(1).
std::forward_list
(singly linked list): Односвязный список. Вставка в начало (с помощью push_front
или emplace_front
) также имеет постоянную сложность O(1).
std::vector
: Хотя технически можно вставить элемент в начало std::vector
с использованием insert(begin(), value)
, это **не
В C++ стандартная библиотека предоставляет несколько контейнеров, которые позволяют эффективно вставлять элементы в начало:
std::deque
(double-ended queue): Этот контейнер оптимизирован для вставки и удаления элементов как в начале, так и в конце. Вставка в начало имеет амортизированную постоянную сложность O(1).
std::list
(doubly linked list): Связный список. Вставка в начало осуществляется путем изменения указателей головы списка. Сложность вставки в начало постоянная - O(1).
std::forward_list
(singly linked list): Односвязный список. Вставка в начало (с помощью push_front
или emplace_front
) также имеет постоянную сложность O(1).
std::vector
: Хотя технически можно вставить элемент в начало std::vector
с использованием insert(begin(), value)
, это **не
Register or sign in to get access to full answers for all questions from the question bank.