0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 26
|
||||||
1 | ||||||
Функции с переменным числом параметров19.09.2016, 10:18. Показов 3815. Ответов 58
Метки нет Все метки)
(
Добрый день, уважаемые знатоки С++!
Подскажите пожалуйста, что не правильно в моем коде? Необходимо написать функцию с переменным числом параметров, продемонстрировать вызов функции с различным числом параметров. Найти минимальный из элементов в списке параметров, стоящих на четных местах
0
|
|
19.09.2016, 10:18 | |
Ответы с готовыми решениями:
58
Функции с переменным числом параметров
Функции с переменным числом параметров Функции с переменным числом параметров |
7361 / 6284 / 2855
Регистрация: 14.04.2014
Сообщений: 27,223
|
|
19.09.2016, 10:35 | 2 |
Для чего ты параметры друг другу присваиваешь? Возьми указатель на первый и пользуйся как массивом.
Добавлено через 2 минуты Вообще-то есть <cstdarg> для таких функций.
1
|
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
|
||||||
19.09.2016, 11:32 | 3 | |||||
![]() Решение
На вариадиках:
4
|
Модератор
![]() ![]() |
|
19.09.2016, 12:03 | 4 |
notAll, ничего не понятно, но выглядит красиво
![]() Добавлено через 4 минуты notAll, а зачем первые две перегрузки понадобились? И как они работают? Добавлено через 1 минуту Ага, про перегрузки дошло.
0
|
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
|
|
19.09.2016, 12:05 | 5 |
Первая - это заглушка если параметров окажется не парное число (тогда
min_even примет один параметр), а вторая - это для игнорирования первого параметра - задание же такое - посчитать только четные параметры.
0
|
Модератор
![]() ![]() |
|
19.09.2016, 12:18 | 6 |
А тут-то почему нестрогое сравнение? У тебя же для варианта с двумя аргументами есть перегрузка.
Добавлено через 4 минуты А я думал первая, если параметр всего один (его и возвращаем), а вторая - если два параметра - возвращаем чётный (второй). А больше параметров - там уже Args&& ... args Добавлено через 1 минуту notAll, вроде дошло... там рекурсия, пока в конце не останется применить перегрузку с одним параметром, либо с двумя. Класс ![]() Добавлено через 3 минуты notAll, а std::forward - это что-то вроде приведения к rvalue ?Добавлено через 1 минуту Тоже дошло. Добавлено через 45 секунд notAll, красиво, с трудом понял, сам бы такое не додумался сделать. Респект ![]()
0
|
GbaLog-
|
19.09.2016, 13:08
#7
|
Не по теме: notAll, Чет мне, как и gru74ik'у с первого взгляда не всё понятно было. А вообще, респект! :good:
0
|
sourcerer
|
19.09.2016, 13:19
#8
|
Не по теме: GbaLog-, STL-то она у Джосаттиса вся, как есть.
0
|
GbaLog-
|
19.09.2016, 13:34
#9
|
0
|
sourcerer
|
19.09.2016, 13:35
#10
|
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
19.09.2016, 13:40 | 11 |
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
19.09.2016, 14:27 | 13 |
gru74ik, у меня личная не приязнь к рекурсивной распаковки вариадика ) Разбухает бинарник очень)
0
|
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 26
|
|
19.09.2016, 15:20 [ТС] | 14 |
Спасибо. Выглядит действительно красиво, теперь постараюсь разобраться с этой красотой.
0
|
rikimaru2013
|
19.09.2016, 16:04
#16
|
Не по теме: GbaLog-, на словах я Лев Толстой! :p
0
|
17079 / 9109 / 2229
Регистрация: 30.01.2014
Сообщений: 15,873
|
|
19.09.2016, 18:55 | 17 |
Если оно всегда инлайнится, то ничего не разбухает. Даже в древнем GCC 2.95 подобное рекурсивное инстанцирование и то приемлемо выглядит.
3
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
||||||
19.09.2016, 19:23 | 18 | |||||
Вот где красота-то
![]()
6
|
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
|
|||||||||||
20.09.2016, 22:15 | 20 | ||||||||||
Voivoid, интересный код. У меня почему то ошибку выбивало на 14 строке - поправил так:
Кликните здесь для просмотра всего текста
0
|
20.09.2016, 22:15 | |
Помогаю со студенческими работами здесь
20
Функции с переменным числом параметров Функции с переменным числом параметров Функции с переменным числом параметров Функции с переменным числом параметров
Функции с переменным числом параметров Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |