Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 10:08   #1
Blad47
Пользователь
 
Регистрация: 10.11.2008
Сообщений: 93
По умолчанию Шаблон стек

Реализовать шаблон класса «стек элементов произвольного типа». Предусмотреть операции добавления элемента, взятие элемента и обращение к любому элементу с помощью индекса и оператора []. Обработку ошибок производить с помощью механизма исключений (обращение по ошибочному индексу, попытка взять элемент из пустого стека).

Подскажите, пожалуйста, сам ход действий и алгоритм, то есть с чего начать и так далее.
Как для такого шаблона выделять память?
Blad47 вне форума Ответить с цитированием
Старый 17.04.2011, 15:12   #2
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Ход действий: тупо берешь и пишешь шабон класса стек.
Если знаний не хватает, тогда берешь пишешь класс стек для типа int, например. А затем перед классом дописываешь template <typename T>, а int везде заменяешь на T. Вот тебе и шаблон будет.
Если не знаешь что такое стек, гугл тебе в помощь.
Как для обычного класса для него выделять память. Если последует вопрос почему, то советом может быть только почитать о шаблонах хоть что-нибудь.
mMAg вне форума Ответить с цитированием
Старый 17.04.2011, 15:40   #3
Blad47
Пользователь
 
Регистрация: 10.11.2008
Сообщений: 93
По умолчанию

Цитата:
Сообщение от mMAg Посмотреть сообщение
Ход действий: тупо берешь и пишешь шабон класса стек.
Если знаний не хватает, тогда берешь пишешь класс стек для типа int, например. А затем перед классом дописываешь template <typename T>, а int везде заменяешь на T. Вот тебе и шаблон будет.
Если не знаешь что такое стек, гугл тебе в помощь.
Как для обычного класса для него выделять память. Если последует вопрос почему, то советом может быть только почитать о шаблонах хоть что-нибудь.
Все понял, спасибо.! Я имею ввиду как выделять память: динамически выделять сразу большой массив, к примеру под 100 элементов, чтобы постоянно потом добавлять элементы? А если он переполнится?
Blad47 вне форума Ответить с цитированием
Старый 17.04.2011, 15:47   #4
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Если нужно создать стек на основе массива, тогда можешь использовать alloc, malloc, realloc. Как пользоваться смотри по доке. При переполнении просто выделишь очередной блок из скольки-то там элементов. Когда их количество будет меньше, можно вернуть эту память обратно. Ну и 100 элементов это массив небольшой. Вот 100.000 элементов, это уже большой )
Можно также создать шаблон класса "Вершина стека", элементами которой будут хранимое значение и указатель на предыдущий элемент. Но это слабовато вяжется с предоставлением доступа к элементам с помощью перегрузки [].
mMAg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
шаблон jen Общие вопросы C/C++ 4 04.12.2010 03:21
шаблон duden2010 Помощь студентам 0 28.04.2010 22:56
Стек. pa6kevi4 Помощь студентам 5 12.03.2010 15:38
создать динамический Стек через класс шаблон Petruha-nsk Общие вопросы C/C++ 1 08.11.2009 12:41