|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.05.2008, 23:51 | #1 |
Форумчанин
Регистрация: 24.04.2008
Сообщений: 300
|
Шаблоны
Вот такая задача:дан массив ,найти все числа кратные трем,сделать шаблон этой фукциий.
И тут трудность - если тип int то остаток а следовательно и кратность находим % а если double или float то modf(). Я решил сделать так:программно с помощью typeid() определяем тип переменной и исходя из этого либо % либо modf() В этом и вопрос возможно ли более просто это реализовать? |
03.05.2008, 12:16 | #2 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
Есть способ(ы)... Но я думаю с помощь typeid() будет быстрее и проще. Я помню, делал игру "Дилемма заключенного" (мутовская до невозможности) на Билдере. Так вот я не знал тогда про typeid() и сделал проверку на индекс (там надо было стратегии игры из ComboBox выбирать) и передавать конструктору класса. Но когда я пришел показывать преподавателю он мне сделал с typeid() и вышло гораздо проще. Так что тебе решать.
|
03.05.2008, 18:02 | #3 |
Форумчанин
Регистрация: 24.04.2008
Сообщений: 300
|
хм.вроде все правильно сделал если передаю интовый массив то все отлично,если же дабл то не комилиться
Код:
|
03.05.2008, 19:50 | #4 |
Регистрация: 03.05.2008
Сообщений: 7
|
Тёма, ты чё всё ищё со 2й лабой е**ся?
З.Ы я тя узнал) |
03.05.2008, 20:29 | #5 |
Форумчанин
Регистрация: 24.04.2008
Сообщений: 300
|
Да =( а ты кто? Люди плиз помогите ктонить!
|
03.05.2008, 21:05 | #6 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
Мда... код у тебя еще тот...
Строка 18 - а зачем ты x проверяешь на тип переменной??? Тебе ведь нужно определить тип массива, а не тип переменной, которая в цикле служит итератором (и к тому же всегда типа int). Вопрос второй. А чем у тебя отличается обработка массива типа int от обработки массива типа double или float? Что там, что там стоит %. |
03.05.2008, 23:02 | #7 |
Форумчанин
Регистрация: 24.04.2008
Сообщений: 300
|
хи,тупанул =) ,ща исправлю и попробую
|
03.05.2008, 23:05 | #8 |
Форумчанин
Регистрация: 24.04.2008
Сообщений: 300
|
Код:
|
04.05.2008, 08:14 | #9 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
ИМХО, не проще внутри шаблона преобразовать элемент массива в double и работать только с ним ? Шаблон будет в два раза меньше и никаких typeid()
|
04.05.2008, 08:57 | #10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
если мне не изменяет память, для решения подобных задач используется специализация шаблона, т.е. создаем еще одну функцию funct, где lol меняем на double и пишем код для обработки массива double. а в вышеоприведенной функции пишем код, как-будто у нас lol == int. никаких typeid, а уже какую функцию вызывать надо - не наша проблема
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
шаблоны функций с++6.0 | tanya | Общие вопросы C/C++ | 18 | 20.12.2008 19:39 |
Шаблоны пользовательских классов | MaTBeu | Общие вопросы C/C++ | 2 | 23.03.2008 19:02 |
сделать шаблоны из сайта | flyby | HTML и CSS | 6 | 04.01.2008 23:38 |
Word и шаблоны. | Gambler | Microsoft Office Word | 0 | 29.10.2006 20:44 |