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

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

Войти
Регистрация
Восстановить пароль
 
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
#1

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

06.07.2015, 18:56. Просмотров 579. Ответов 14
Метки нет (Все метки)

В чем отличие классов stack<> и forward_list<>?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2015, 18:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отличие классов stack<> и forward_list<> (C++):

Реализация классов-контейнеров stack и list - C++
Помогите пожалуйста реализовать stack и list в виде кодов с файлами stack.h , stack.cpp и main.cpp и также с list. Буду очень благодарен.

Подскажите начинающему программисту, в чем отличие структур от классов в C++ - C++
Расскажите пожалуйста начинающему программисту, в чем отличие структур от классов в C++

Задания на стеки/очереди (без шаблонных классов stack, queue) - C++
Помогите, пожалуйста. Нужно добавить в очередь нечетные целые числа от -3 до 3. Все числа из очереди извлекать по одному и отрицательные...

Class forward_list (односвязный список) - C++
Задание - реализовать класс односвязный список. Не могу определиться с полями и конструктором List(size_type num, const value_type &amp;val =...

Forward_list и вставка элемента в конец него - C++
Всем доброго. Прошу прощение, если ответ на этот вопрос уже есть на просторах. И так. Есть у меня forward_list fwlist, я хочу...

Есть ли связь между STL-stack и stack - высокопроизводительная память? - C++
Куча источников, как всегда много отсебятины, в общем я запутался...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5320 / 4640 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
06.07.2015, 19:03 #2
Ну стек и список - разная организация.
0
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.07.2015, 19:09 #3
Цитата Сообщение от proont Посмотреть сообщение
В чем отличие классов stack<> и forward_list<>?
А почему именно эти два шаблона?
forward_list - это контейнер, а stack - это адаптер контейнера.
0
nmcf
06.07.2015, 19:12
  #4

Не по теме:

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

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

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

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

Std::forward_list по-разному ведет себя с компиляторами gcc и vc++ - C++
Есть такой код: #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;forward_list&gt; using namespace std; void show(const...

Ошибка: "Unhandled exception: Stack cookie instrumentation code detected a stack-based buffer overrun" - C++
Не могу понять почему значение ChoiceOfPlayer меняется и почему NumberOfRow и NumberOfColumn всегда последние значение цикла. Помогите...

как проинициализировать std::stack<const int> obj ( std::stack<int>{} ); - C++
добрый день. вопрос в коде: http://rextester.com/VCVVML6656 #include &lt;iostream&gt; #include &lt;stack&gt; //-std=c++14...

Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов - C++
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов и приложение, демонстрирующее работу с коллекцией объектов...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.07.2015, 21:22
Ответ Создать тему
Опции темы

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