Есть ли возможность в C++ явно задать массив?
Как функции передать массив {1,2,3,4} без инициализации массива в отдельной переменной, и что в таком случае должна принимать функция в качестве аргумента. Например
void some_fucn( )
{
//
}
int main()
{
some_func({ 1,2,3,4,5 });
}
Ответы (1 шт):
Можно явно задать массив и передать его в функцию. Чтобы передать массив без инициализации в отдельной переменной, вы можете использовать C++11 инициализатор списков (initializer lists) и модифицировать функцию, чтобы она принимала std::initializer_list. Вот пример:
#include <iostream>
#include <initializer_list>
void some_func(std::initializer_list<int> list)
{
for (const auto& elem : list)
{
std::cout << elem << " ";
}
}
int main()
{
some_func({1, 2, 3, 4, 5});
return 0;
}
Здесь std::initializer_list<int> позволяет передать список значений, которые будут преобразованы во временный массив. Это позволяет передать список значений в виде {1, 2, 3, 4, 5} прямо в функцию, без необходимости объявления и инициализации массива в отдельной переменной.