Страницы

Поиск по вопросам

четверг, 16 мая 2019 г.

Можно ли напрямую в функцию передать массив?

Функция выдаёт случайные числа в определённом диапазоне с исключением. Исключений может быть сколько угодно.
int randint (int min, int max, int exceptions{}) { ... }
Как мне написать параметры функции, чтобы я мог вызывать функцию таким образом:
randint (0, 10, {4, 5, 6});
Мне нужна именно передача массива напрямую.


Ответ

Возможны несколько вариантов:
int randint (int min, int max, ::std::initializer_list values)
int randint (int min, int max, ::std::array values)
int randint (int min, int max, ::std::array_view values) // аналог gsl::span
Использовать указатели для передачи массива в функцию не следует.

Комментариев нет:

Отправить комментарий