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

Отличие классов stack<> и forward_list<> - C++

Восстановить пароль Регистрация
 
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
06.07.2015, 18:56     Отличие классов stack<> и forward_list<> #1
В чем отличие классов stack<> и forward_list<>?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4441 / 3779 / 1278
Регистрация: 14.04.2014
Сообщений: 14,872
06.07.2015, 19:03     Отличие классов stack<> и forward_list<> #2
Ну стек и список - разная организация.
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.07.2015, 19:09     Отличие классов stack<> и forward_list<> #3
Цитата Сообщение от proont Посмотреть сообщение
В чем отличие классов stack<> и forward_list<>?
А почему именно эти два шаблона?
forward_list - это контейнер, а stack - это адаптер контейнера.
nmcf
06.07.2015, 19:12
  #4

Не по теме:

Объяснил так объяснил.

proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
06.07.2015, 19:18  [ТС]     Отличие классов stack<> и forward_list<> #5
Можно еще так сформулировать мой вопрос. Чем отличается односвязный список от стека?
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.07.2015, 19:26     Отличие классов stack<> и forward_list<> #6
Цитата Сообщение от proont Посмотреть сообщение
Можно еще так сформулировать мой вопрос. Чем отличается односвязный список от стека?
Я ж вам написал уже. Список - это контейнер, а стек - это адаптер контейнера, который допускает с ним только действия, которые производятся со стеком.
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
06.07.2015, 19:30  [ТС]     Отличие классов stack<> и forward_list<> #7
Mr.X, я не понимаю чем контейнер отличается от адаптера контейнера.
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.07.2015, 19:38     Отличие классов stack<> и forward_list<> #8
Цитата Сообщение от proont Посмотреть сообщение
я не понимаю чем контейнер отличается от адаптера контейнера.
Контейнер - это структура данных, предназначенная для хранения данных и их обработки с помощью алгоритмов.
Адаптер - это класс, который хранит внутри себя контейнер, но меняет его интерфейс таким образом, чтобы эмулировать такие специфические структуры данных как стек, очередь или очередь с приоритетами.
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
06.07.2015, 19:40  [ТС]     Отличие классов stack<> и forward_list<> #9
Mr.X, тогда на основе какого контейнера реализован stack<>?
И если я сам захочу реализовать такие структуры данных как стек и однонаправленный список, то чем они будут отличаться?
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.07.2015, 19:50     Отличие классов stack<> и forward_list<> #10
Цитата Сообщение от proont Посмотреть сообщение
Mr.X, тогда на основе какого контейнера реализован stack<>?
И если я сам захочу реализовать такие структуры данных как стек и однонаправленный список, то чем они будут отличаться?
stack<> по умолчанию реализуется на основе deque, но можно указать другой последовательный контейнер, тот же список, например. Стек моделирует стек, а список - список. А что это такое каждый изучающий программирование должен знать так же хорошо как и что такое клавиатура и монитор. Определения в книжках почитайте.

Добавлено через 46 секунд
Будут отличаться набором интерфейсных функций.
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
06.07.2015, 19:58  [ТС]     Отличие классов stack<> и forward_list<> #11
Mr.X, стек это такой тип данный, где каждый элемент содержит ссылку на следующий,мы имеем доступ только к последнему элементы и можем перемещаться от последнего к первому. В однонаправленном списке то же самое.

Добавлено через 2 минуты
Или здесь имеет важность операции которые применимы к типу данных? И названия даны в соответствии с операциями, которые можно выполнять
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.07.2015, 20:53     Отличие классов stack<> и forward_list<> #12
Цитата Сообщение от proont Посмотреть сообщение
Mr.X, стек это такой тип данный, где каждый элемент содержит ссылку на следующий,мы имеем доступ только к последнему элементы и можем перемещаться от последнего к первому. В однонаправленном списке то же самое.
Ответ неверный.
Цитата Сообщение от Mr.X Посмотреть сообщение
Определения в книжках почитайте.
Добавлено через 53 минуты
Цитата Сообщение от proont Посмотреть сообщение
Или здесь имеет важность операции которые применимы к типу данных? И названия даны в соответствии с операциями, которые можно выполнять
Ну да. Все структуры данных этим и отличаются друг от друга.
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
06.07.2015, 21:03  [ТС]     Отличие классов stack<> и forward_list<> #13
Я так понял в стеке мы имеем доступ только к последнему элементу. Мы может добавлять еще элементы. Что бы получить доступ к предпоследнему элементу нам нужно удалить последний элемент. А в односвязанном списке все элементы связаны указателями и мы можем получать доступ к любому элементу не удаляя для этого предыдущие. Так?
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.07.2015, 21:11     Отличие классов stack<> и forward_list<> #14
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от proont Посмотреть сообщение
Я так понял в стеке мы имеем доступ только к последнему элементу. Мы может добавлять еще элементы. Что бы получить доступ к предпоследнему элементу нам нужно удалить последний элемент. А в односвязанном списке все элементы связаны указателями и мы можем получать доступ к любому элементу не удаляя для этого предыдущие. Так?
Все правильно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2015, 21:22     Отличие классов stack<> и forward_list<>
Еще ссылки по теме:

Ошибка: "Unhandled exception: Stack cookie instrumentation code detected a stack-based buffer overrun" C++
C++ Реализация классов-контейнеров stack и list
C++ Forward_list и вставка элемента в конец него
Stack.top в c++ C++
Std::forward_list по-разному ведет себя с компиляторами gcc и vc++ C++

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

Или воспользуйтесь поиском по форуму:
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
06.07.2015, 21:22  [ТС]     Отличие классов stack<> и forward_list<> #15
Mr.X, теперь все понятно. Просто, когда в универе проходили структуры данных мы со стеком работали как с однонаправленным списком. Меняли максимальный и минимальный элемент и т. д. Получается это была работа с однонаправленным списком, а не со стеком.
Yandex
Объявления
06.07.2015, 21:22     Отличие классов stack<> и forward_list<>
Ответ Создать тему
Опции темы

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