║XLR8║
|
||||||||||||||||
1 | ||||||||||||||||
шаблоны в си++13.12.2009, 16:50. Показов 3475. Ответов 22
Метки нет (Все метки)
Здравствуйте, я уже сутки пытаюсь переписать стек так, что-бы можно было испольовать все возможные типы данных для элементов стека. Если я верно понял нужно использовать шаблоы, пытался но ничего не вышло.. Если кто знает как ето реализировать буду очень признателен.. Вот
код
Добавлено через 40 минут На шаблон переделано, осталось как-то реализовать определение типа введенных данных и в зависимости от них кадать в стек элемент того или ониго типа.. mstack.h
mstack.cpp
0
|
13.12.2009, 16:50 | |
Ответы с готовыми решениями:
22
Хранить шаблоны документов в базе и выводить данные в эти шаблоны Чем отличаются шаблоны HTML и шаблоны WordPress «Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами». Шаблоны. Плохо понимаемые моменты из книги "Шаблоны С++. Справочник разработчика". (Вандевурд, Джосаттис) |
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
13.12.2009, 17:20 | 2 |
Здесь сделано так, что каждый конкретный вариант стека работает только с одним типом данных. Если уж описал где mstack<int>, так только int туда и сможешь класть. Так что если надо производить "определение типа введенных данных и в зависимости от них кадать в стек элемент того или ониго типа", предложенная реализация совершенно не подходит. Для реализации стека, принимающего значения разного типа, придётся делать универсальный тип, способный вмещать значения всех требуемых типов (вроде Variant).
1
|
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
|
|
13.12.2009, 18:29 | 4 |
outoftime, если хочешь хранить объекты разных типов данных то придётся юзать boost::any но для этого придётся дистриб буста качать.
1
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
13.12.2009, 18:45 | 5 |
Андрейка,
если хочешь хранить объекты разных типов данных то придётся юзать boost::any но для этого придётся дистриб буста качать. а смысл в таком хранении? всё равно неизвестно, чё потом с этими объектами делать.
1
|
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
|
|
13.12.2009, 18:54 | 6 |
Rififi, хотя да , ты прав
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
13.12.2009, 20:07 | 8 |
outoftime, у тебя есть задание на данную работу?
Ты уверен что стек должен содержать элементы различного типа?
1
|
║XLR8║
|
|
13.12.2009, 20:20 [ТС] | 9 |
на парах мы учим паскаль (до нового года), си/си++ мне надо "для себя" + на нем будет курсач, да и никто вроде не запрещает знать много, хотя и невозможно знать все..
касательно скорости работы, так оказалось что шаблон пашет так медленно, что можно увидеть задержки после ввода данных, в то время как структуры работают практически моментально (задержек не видно).. CyBOSSeR, однотипные я уже 5 разных реализовал с разными подходами..
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
13.12.2009, 20:27 | 10 |
outoftime, ты немного не понял... Должен ли стек хранить элементы различного типа (первый элемент - целое, второй - вещественное и т.д.) или быть универсальным контейнером (хочешь чтоб хранил целые - будет хранить целые, хочешь вещественные - будет хранить вещественные).
И еще - является ли класс шаблонным или нет - это никак не влияет на скорость программы. Почитай про шаблоны более внимательно.
1
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
13.12.2009, 20:57 | 12 |
outoftime, для чего тебе это нужно?
Ну запихну я туда число, строку, битмап, указатель массив и что я с этой солянкой делать буду?
1
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
||||||
13.12.2009, 21:19 | 14 | |||||
1
|
║XLR8║
|
|
13.12.2009, 21:42 [ТС] | 15 |
ладно, я пас с таким играться.. оно компилится?.. ладно, о шаблонах узнал что хотел, а как преобразовывается тип надо посмотреть с пхп, там реализирована похожая технология.. предлагаю считать тему закрытой, в силу трудоемкости..
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
13.12.2009, 22:01 | 16 |
outoftime, посмотреть надо не в пхп, а в книгах, посвященных C++.
Контейнер который ты хотел создать небезопасен и очень очень неудобен, так что лучше забей на него, если в нем нет необходимости.
1
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
13.12.2009, 22:38 | 18 |
Твой универсальный стек безопасен, т.к. одновременно он может содержать элементы только одного типа (в зависимости от типа передаваемого в качестве параметра шаблона при создании).
А вот стек который одновременно может содержать элементы различного типа небезопасен только тем фактом что тип элементов неизвестен, соответственно, практически никакая операция не может быть выполнена над ними безопасно. Предположим, захочешь ты распечатать содержание стека, как ты будешь это делать?
1
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
13.12.2009, 23:57 | 20 |
Два вопроса:
1. Каким образом проверять тип? 2. Ну определил ты что текущий элемент битмап, как ты его выведешь?
1
|
13.12.2009, 23:57 | |
13.12.2009, 23:57 | |
Помогаю со студенческими работами здесь
20
Помогите писать на С++ через шаблоны. Консуле я писал, но надо писать исползуя шаблоны Шаблоны в C++ Шаблоны в C++ шаблоны Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |