对于这么小的数组,你可以显式编写
double *aPtr = new double[10]
{
ex -1, ex -1, ex -1, ex -1, ex -1, ex -1, ex -1, ex -1, ex -1, ex -1
};
但是对于更大的数组,您应该使用一些标准算法,例如 std::generate、std::generate_n、std::fill、std::fill_n、std::for_each 甚至某种循环。
例如
std::generate( aPtr, aPtr + 10, [value = ex - 1]{ return value; } );
或
std::generate_n( aPtr, 10, [value = ex - 1]{ return value; } );
或
std::fill( aPtr, aPtr + 10, ex - 1 );
或
std::fill_n( aPtr, 10, ex - 1 );
或
std::for_each( aPtr, aPtr + 10, [value = ex - 1]( auto &x ){ x = value; } );
如果编译器不支持初始化捕获你可以写例如
std::generate( aPtr, aPtr + 10, [=]{ return ex - 1; } );