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

Очередь - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
bambino
 Аватар для bambino
193 / 19 / 4
Регистрация: 05.08.2010
Сообщений: 229
13.06.2011, 23:14     Очередь #1
Всем привет!
Вопрос: целесообразно ли перегружать для очереди операторы ввода/вывода и оператор [], для произвольного доступа к елементам ?
Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
13.06.2011, 23:56     Очередь #2
Нет, не целесообразно. Сам термин "очередь" уже исключает какой бы то ни было произвольный доступ.
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
13.06.2011, 23:56     Очередь #3
У Страуструпа написано на этот счёт что он такое намерено не делал чтобы не делать заведомо нисколпроизводительные встроенные операции...
bambino
 Аватар для bambino
193 / 19 / 4
Регистрация: 05.08.2010
Сообщений: 229
13.06.2011, 23:59  [ТС]     Очередь #4
Ладно, спасибо, но преподам хер это поясниш, прийдется реализововать
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
14.06.2011, 04:24     Очередь #5
Ну вот в STL deque обладает-таки произвольным доступом. Хотя упор там на оптимизацию вставки/удаления на концах.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
14.06.2011, 09:15     Очередь #6
grizlik78, ну, если уж на то пошло, речь шла об очереди, а не о деке.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
14.06.2011, 10:08     Очередь #7
GCC, stl_queue.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template <class _Tp, 
          class _Sequence __STL_DEPENDENT_DEFAULT_TMPL(deque<_Tp>) >
class queue;
// ...
protected:
  _Sequence c;
// ...
public:
  bool empty() const { return c.empty(); }
  size_type size() const { return c.size(); }
  reference front() { return c.front(); }
  const_reference front() const { return c.front(); }
  reference back() { return c.back(); }
  const_reference back() const { return c.back(); }
  void push(const value_type& __x) { c.push_back(__x); }
  void pop() { c.pop_front(); }
// ...
queue содержит deque.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2011, 14:49     Очередь
Еще ссылки по теме:

Создать очередь. Добавить элемент в очередь. Удалить элемент из очереди C++
Очередь, теория. Очередь на шести стеках C++

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
14.06.2011, 14:49     Очередь #8
lemegeton, и что? Пусть хоть чистый вектор содержит, она же прямого доступа к деку не предоставляет. И интерфейса для произвольного доступа тоже.
Yandex
Объявления
14.06.2011, 14:49     Очередь
Ответ Создать тему
Опции темы

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