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