![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 10.11.2008
Сообщений: 93
|
![]()
Реализовать шаблон класса «стек элементов произвольного типа». Предусмотреть операции добавления элемента, взятие элемента и обращение к любому элементу с помощью индекса и оператора []. Обработку ошибок производить с помощью механизма исключений (обращение по ошибочному индексу, попытка взять элемент из пустого стека).
Подскажите, пожалуйста, сам ход действий и алгоритм, то есть с чего начать и так далее. Как для такого шаблона выделять память? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]()
Ход действий: тупо берешь и пишешь шабон класса стек.
Если знаний не хватает, тогда берешь пишешь класс стек для типа int, например. А затем перед классом дописываешь template <typename T>, а int везде заменяешь на T. Вот тебе и шаблон будет. Если не знаешь что такое стек, гугл тебе в помощь. Как для обычного класса для него выделять память. Если последует вопрос почему, то советом может быть только почитать о шаблонах хоть что-нибудь. |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 10.11.2008
Сообщений: 93
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]()
Если нужно создать стек на основе массива, тогда можешь использовать alloc, malloc, realloc. Как пользоваться смотри по доке. При переполнении просто выделишь очередной блок из скольки-то там элементов. Когда их количество будет меньше, можно вернуть эту память обратно. Ну и 100 элементов это массив небольшой. Вот 100.000 элементов, это уже большой )
Можно также создать шаблон класса "Вершина стека", элементами которой будут хранимое значение и указатель на предыдущий элемент. Но это слабовато вяжется с предоставлением доступа к элементам с помощью перегрузки []. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
шаблон | 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 |