Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 2
Регистрация: 24.02.2016
Сообщений: 131
1

Реализовать пользовательские классы - дек, стек (LIFO), очередь (FIFO) на базе класса list библиотеки STL

27.11.2016, 19:59. Показов 2696. Ответов 13
Метки нет (Все метки)

Создать пользовательские классы - дек, стек (LIFO), очередь (FIFO) на базе класса list
библиотеки STL. Написать тестирующую программу, которая в тестовом режиме
выполняет операции над сформированными сложными структурами. Перечень операций
должен быть классическим для сложных структур (с учетом ограничений на обработку
конкретной структуры):
 создание пустой сложной структуры;
 добавление элемента в структуру до и после текущего элементы;
 удаление любого элемента в структуре;
 поиск элемента с заданными свойствами в структуре;
 сортировка элементов структуры;
 печать элементов структуры на экран;
 удаление всей структуры.

Помогите пожалуйста
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2016, 19:59
Ответы с готовыми решениями:

Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список»
Всем добрый вечер! Помогите пожалуйста с лабораторной работой, дело в том что скоро сдавать, а я в...

Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список»
Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список». Создать...

Как реализовать стек из Stl в программе без использования библиотеки
Мне нужно реализовать стек из Stl, без использования библиотеки. Я немного не понимаю, как это...

Реализовать классы для структур данных «стек» и «очередь»
дали такое задание, не понимаю что делать.. Реализовать классы для структур данных «стек» и...

13
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
27.11.2016, 20:06 2
С чем? Ты же ничего не сделал.
0
1 / 1 / 2
Регистрация: 24.02.2016
Сообщений: 131
27.11.2016, 20:53  [ТС] 3
Я не могу понять как создать классы на базе уже существующего класса list
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
27.11.2016, 21:52 4
Для стека и очереди там уже готовый функционал - есть функции для вставки и извлечения с обоих концов.
Ну просто создай класс с list внутри.
0
1 / 1 / 2
Регистрация: 24.02.2016
Сообщений: 131
27.11.2016, 23:32  [ТС] 5
наследовать
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
27.11.2016, 23:42 6
Ну можешь попробовать и наследование.
0
1 / 1 / 2
Регистрация: 24.02.2016
Сообщений: 131
28.11.2016, 00:42  [ТС] 7
А конструктор как вызвать базового класса
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
28.11.2016, 10:05 8
В твоём задании не сказано, что нужно иерархию создавать. Достаточно описать отдельные классы с list внутри. А если хочешь от list наследование, то изучай документацию на него.
0
1 / 1 / 2
Регистрация: 24.02.2016
Сообщений: 131
29.11.2016, 12:54  [ТС] 9
Можно пожалуста пример
0
Форумчанин
Эксперт CЭксперт С++
8169 / 5017 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
29.11.2016, 13:06 10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <list>
 
template <typename T>
class MyStack
{
public:
    MyStack(std::initializer_list<T> l) : m_data(l) {}
    void push(T &&x) { m_data.push_back(x); }
    void push(const T &x) { m_data.push_back(x); }
    void pop() { m_data.pop_back(); }
    T& top() { return m_data.back(); }
    const T& top() const { return m_data.back(); }
    bool empty() const { return m_data.empty(); }
    size_t size() const { return m_data.size(); }
 
protected:
    std::list<T> m_data;
};
 
int main()
{
    MyStack<int> st = {1, 2, 3, 4, 5};
    for (int i=6; i < 11; i++)
        st.push(i);
    std::cout << st.size() << ": ";
    while (!st.empty())
    {
        std::cout << st.top() << " ";
        st.pop();
    }
}
0
1 / 1 / 2
Регистрация: 24.02.2016
Сообщений: 131
29.11.2016, 19:13  [ТС] 11
в main функции ошибки редактор пишет что не содержит член метода класса
0
Форумчанин
Эксперт CЭксперт С++
8169 / 5017 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
29.11.2016, 22:24 12
Цитата Сообщение от draka08 Посмотреть сообщение
в main функции ошибки редактор пишет что не содержит член метода класса
Мы должны сами догадаться что за ошибки?

http://rextester.com/XTIRW32785

Скорее всего вы что-то делаете не так.
0
1 / 1 / 2
Регистрация: 24.02.2016
Сообщений: 131
03.12.2016, 23:31  [ТС] 13
Все понял, а как реализовать очередь тогда
0
Форумчанин
Эксперт CЭксперт С++
8169 / 5017 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
04.12.2016, 11:44 14
Цитата Сообщение от draka08 Посмотреть сообщение
Все понял, а как реализовать очередь тогда
Поменять функции push и pop.
Добавлять в конец, удалять с начала. У листа есть ф-ции и для того и для того. За вас уже сделано 95% работы.
Ну да, ещё и класс переименовать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2016, 11:44

Стек, очередь, дек
. Напишите программу, которая «переворачивает» массив, записанный в файл, с помощью стека. Размер...

Стек, дек, очередь
Вообщем нужны примеры программ описание стек, дек и очереди.Есть одно нужны программы с...

Стек, очередь, дек - ИДЕЯ (реализация?)
Задание лабораторки: Хочу создать программу про Библиотеку (типа жизненный пример) Три...

Создать базовый класс список. Реализовать на базе списка стек и очередь с виртуальными функциями вставки и вытаскивания
Здравствуйте, помогите пожалуйста разобраться что как работает в программе (напишите комментарии). ...


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

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

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