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

186
31 августа 2018, 17:50

Функция выдаёт случайные числа в определённом диапазоне с исключением. Исключений может быть сколько угодно.

int randint (int min, int max, int exceptions{}) { ... }

Как мне написать параметры функции, чтобы я мог вызывать функцию таким образом:

randint (0, 10, {4, 5, 6});

Мне нужна именно передача массива напрямую.

Answer 1

Возможны несколько вариантов:

int randint (int min, int max, ::std::initializer_list<int> values)
int randint (int min, int max, ::std::array<int, 3> values)
int randint (int min, int max, ::std::array_view<int> values) // аналог gsl::span

Использовать указатели для передачи массива в функцию не следует.

READ ALSO
C++ вернуть из функции int разного размера

C++ вернуть из функции int разного размера

Нужна функция, которая будет способна возвращать как int32, так и int64Как это наиболее грамотно реализовать?

186
Поворачивание Perspective Camera

Поворачивание Perspective Camera

Как поворачивать Perspective Camera, когда по экрану проводят пальцем (как в Майнкрафте Bedrock Edition)?

151