Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DiffEreD
1432 / 769 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
#1

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

26.05.2012, 10:55. Просмотров 589. Ответов 8
Метки нет (Все метки)

Собственно, в чем смысл указывания базового контейнера по умолчанию для контейнеров STL?
В чем будет отличия этого объявления
C++
1
priority_queue<int, deque<int>, greater<int> > numbers
от етого
C++
1
priority_queue<int, vector<int>, greater<int> > numbers
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2012, 10:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Базовый контейнер по умолчанию (C++):

Передача в контейнер объекта через указатель на базовый класс - C++
Передаю в stl контейнер list указатель на производный класс, предварительно приведя его к типу производного класса - программа вылетает.В...

typeid определяет тип указателя на базовый класс, как тип "базовый класс". Вне зависимости от присвоенного ему значения - C++
Вот код: #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include &lt;typeinfo&gt; using...

Базовый уровень - C++
Парни, помогите с написанием текста программ. Новичек, пытаюсь понять как все работает. Буду очень благодарен, так как задачки эти...

контейнер - C++
Создать контейнер, в который можно добавлять и удалять методы. Размер контейнера должен увеличиваться автоматически. Вот такое задание ,...

Базовый тип чисел - C++
Всем привет, вот в вузе дали задачку, написать полноценный базовый числовой тип, то есть как тип string, только с числами, что бы я мог...

проблемы с ООП(базовый) - C++
Есть структура &quot;Бибилиотека&quot;. Там есть некоторые функций. Так вот. class Library { public: int GetId() int...

8
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
26.05.2012, 11:18 #2
у разных контейнеров разные характеристики например при вставке\удалении. всякие перераспределения памяти, лишние копирования, потребления памяти и т.п. ну и все эти свойства влияют на свойства других классов, которые внутри себя используют контейнеры.
0
castaway
Эксперт С++
4919 / 3027 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 10
Завершенные тесты: 1
26.05.2012, 11:20 #3
Тебя интересуют отличия deque и vector ?
0
DiffEreD
1432 / 769 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
26.05.2012, 11:29  [ТС] #4
Цитата Сообщение от lazybiz Посмотреть сообщение
Тебя интересуют отличия deque и vector ?
Да нет, ети отличия сами собой понятны.
Между двумя выше приведенными объявлениями отличия будут в алгоритмах, использовании итераторов или еще чем нибудь?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
26.05.2012, 11:30 #5
Цитата Сообщение от yuron_477 Посмотреть сообщение
В чем будет отличия
В первом случае контейнер будет реализован на базе очереди, а во втором - вектора.
Всегда твой, К.О.
0
castaway
Эксперт С++
4919 / 3027 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 10
Завершенные тесты: 1
26.05.2012, 11:32 #6
Дэви,
Между двумя выше приведенными объявлениями отличия будут в алгоритмах, использовании итераторов или еще чем нибудь?
0
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
26.05.2012, 11:36 #7
алгоритмы те же. т.е. у контейнера например в каком-то месте всегда будет зваться push_back() вне зависимости от типа контейнера. но в разных контейнерах этот push_back() реализован по разному - вот вам и различия.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
26.05.2012, 11:37 #8
Цитата Сообщение от lazybiz Посмотреть сообщение
отличия будут в алгоритмах, использовании итераторов или еще чем нибудь?
отличия будут в алгоритмах, использовании итераторов и использовании памяти.
В правильной реализации очереди(с приоритетами в том числе) итераторов нет, т.к. они там не нужны. Алгоритмов над очередью тоже нет, т.к. их не к чему применить - только один элемент доступен (для дека - два).
0
DU
1484 / 1130 / 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().
0
26.05.2012, 11:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2012, 11:41
Привет! Вот еще темы с ответами:

Не определён базовый класс - C++
компилятор выдаёт ошибку:error C2504: Confection: не определен базовый класс. Класс Filling наследуется от класса Confection #pragma...

Виртуальный базовый класс - C++
Создать иерархию типов, описывающую - человека, студента, отца семейства и студента-отца семейства. Использовать виртуальные базовые...

Не определен базовый класс - C++
Доброго времени суток. Столкнулся с проблемой при наследовании, и не могу разобраться, как решить. Есть базовый класс SPoint и два...

Абстрактный базовый класс - C++
Привет всем! У меня есть абстрактный базовый класс Object.Он содержит различные методы. Например, virtual void...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.