Страницы

Поиск по вопросам

вторник, 9 октября 2018 г.

Контейнер deque в STL c++

Я начал изучения библиотеки STL и нашел такой интересный контейнер, как deque, но я не понял, в чем его преимущество, если можно заменить его другими контейнерами из того же STL?


Ответ

А чем вообще один контейнер отличается от другого? И вообще, все их можно заменить обычным массивом...
В конце концов, какая разница, искать ли элемент в контейнере час или пару секунд, или - ну что тут такого страшного, если вставка в начало массива требует перемещения всех его элементов?
Или это существенно?
Тогда учтите, что дек обеспечивает быструю вставку-удаление с обоих концов контейнера - чего, например, не может обеспечить vector, но при этом быстрое (хотя чуть медленнее, чем у vector) обращение к любому элементу внутри, чего, например, не может обеспечить list. Но при этом он не может обеспечить быстрый поиск, как у set или unordered_set...
Ну, а чтобы вам было легче выбирать, какой именно контейнер вам нужен - вот неплохая шпаргалка:

Еще одна сводная шпаргалка по функциям контейнеров:

Комментариев нет:

Отправить комментарий