Форум программистов, компьютерный форум CyberForum.ru

Базовый контейнер по умолчанию - C++

Восстановить пароль Регистрация
 
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
26.05.2012, 10:55     Базовый контейнер по умолчанию #1
Собственно, в чем смысл указывания базового контейнера по умолчанию для контейнеров STL?
В чем будет отличия этого объявления
C++
1
priority_queue<int, deque<int>, greater<int> > numbers
от етого
C++
1
priority_queue<int, vector<int>, greater<int> > numbers
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
26.05.2012, 11:18     Базовый контейнер по умолчанию #2
у разных контейнеров разные характеристики например при вставке\удалении. всякие перераспределения памяти, лишние копирования, потребления памяти и т.п. ну и все эти свойства влияют на свойства других классов, которые внутри себя используют контейнеры.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
26.05.2012, 11:20     Базовый контейнер по умолчанию #3
Тебя интересуют отличия deque и vector ?
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
26.05.2012, 11:29  [ТС]     Базовый контейнер по умолчанию #4
Цитата Сообщение от lazybiz Посмотреть сообщение
Тебя интересуют отличия deque и vector ?
Да нет, ети отличия сами собой понятны.
Между двумя выше приведенными объявлениями отличия будут в алгоритмах, использовании итераторов или еще чем нибудь?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
26.05.2012, 11:30     Базовый контейнер по умолчанию #5
Цитата Сообщение от yuron_477 Посмотреть сообщение
В чем будет отличия
В первом случае контейнер будет реализован на базе очереди, а во втором - вектора.
Всегда твой, К.О.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
26.05.2012, 11:32     Базовый контейнер по умолчанию #6
Дэви,
Между двумя выше приведенными объявлениями отличия будут в алгоритмах, использовании итераторов или еще чем нибудь?
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
26.05.2012, 11:36     Базовый контейнер по умолчанию #7
алгоритмы те же. т.е. у контейнера например в каком-то месте всегда будет зваться push_back() вне зависимости от типа контейнера. но в разных контейнерах этот push_back() реализован по разному - вот вам и различия.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
26.05.2012, 11:37     Базовый контейнер по умолчанию #8
Цитата Сообщение от lazybiz Посмотреть сообщение
отличия будут в алгоритмах, использовании итераторов или еще чем нибудь?
отличия будут в алгоритмах, использовании итераторов и использовании памяти.
В правильной реализации очереди(с приоритетами в том числе) итераторов нет, т.к. они там не нужны. Алгоритмов над очередью тоже нет, т.к. их не к чему применить - только один элемент доступен (для дека - два).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2012, 11:41     Базовый контейнер по умолчанию
Еще ссылки по теме:

Не определен базовый класс C++
Базовый уровень C++
Неоднозначный базовый класс C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
26.05.2012, 11:41     Базовый контейнер по умолчанию #9
http://www.cplusplus.com/reference/stl/priority_queue/

The underlying container may be any of the standard container class templates or some other specifically designed container class. The only requirement is that it must be accessible through random access iterators and it must support the following operations:

front()
push_back()
pop_back()
разница зависит от разницы в этих операциях для вектора и для дека.
и самое существенное кроется в отличиях операции push_back().
Yandex
Объявления
26.05.2012, 11:41     Базовый контейнер по умолчанию
Ответ Создать тему
Опции темы

Текущее время: 14:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru