I'm trying to initialize an int array with everything set at -1.
I tried the following, but it doesn't work. It only sets the first value at -1.
int directory[100] = {-1};
Why doesn't it work right?
To initialize or instantiate an array as we declare it, meaning we assign values as when we create the array, we can use the following shorthand syntax: int[] myArray = {13, 14, 15}; Or, you could generate a stream of values and assign it back to the array: int[] intArray = IntStream.
I'm surprised at all the answers suggesting vector
. They aren't even the same thing!
Use std::fill
, from <algorithm>
:
int directory[100]; std::fill(directory, directory + 100, -1);
Not concerned with the question directly, but you might want a nice helper function when it comes to arrays:
template <typename T, size_t N> T* end(T (&pX)[N]) { return pX + N; }
Giving:
int directory[100]; std::fill(directory, end(directory), -1);
So you don't need to list the size twice.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With