![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 24.04.2008
Сообщений: 300
|
![]()
Вот такая задача:дан массив ,найти все числа кратные трем,сделать шаблон этой фукциий.
И тут трудность - если тип int то остаток а следовательно и кратность находим % а если double или float то modf(). Я решил сделать так:программно с помощью typeid() определяем тип переменной и исходя из этого либо % либо modf() В этом и вопрос возможно ли более просто это реализовать? |
![]() |
![]() |
![]() |
#2 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
Есть способ(ы)... Но я думаю с помощь typeid() будет быстрее и проще. Я помню, делал игру "Дилемма заключенного" (мутовская до невозможности) на Билдере. Так вот я не знал тогда про typeid() и сделал проверку на индекс (там надо было стратегии игры из ComboBox выбирать) и передавать конструктору класса. Но когда я пришел показывать преподавателю он мне сделал с typeid() и вышло гораздо проще. Так что тебе решать.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 24.04.2008
Сообщений: 300
|
![]()
хм.вроде все правильно сделал если передаю интовый массив то все отлично,если же дабл то не комилиться
Код:
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 03.05.2008
Сообщений: 7
|
![]()
Тёма, ты чё всё ищё со 2й лабой е**ся?
З.Ы я тя узнал) |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 24.04.2008
Сообщений: 300
|
![]()
Да =( а ты кто? Люди плиз помогите ктонить!
|
![]() |
![]() |
![]() |
#6 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
Мда... код у тебя еще тот...
Строка 18 - а зачем ты x проверяешь на тип переменной??? Тебе ведь нужно определить тип массива, а не тип переменной, которая в цикле служит итератором (и к тому же всегда типа int). Вопрос второй. А чем у тебя отличается обработка массива типа int от обработки массива типа double или float? Что там, что там стоит %. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 24.04.2008
Сообщений: 300
|
![]()
хи,тупанул =) ,ща исправлю и попробую
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 24.04.2008
Сообщений: 300
|
![]() Код:
|
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
ИМХО, не проще внутри шаблона преобразовать элемент массива в double и работать только с ним ? Шаблон будет в два раза меньше и никаких typeid()
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
если мне не изменяет память, для решения подобных задач используется специализация шаблона, т.е. создаем еще одну функцию 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 |