таким образом, что индекс 3 равен 0, а 5 равен 2.
Это будет
int arr[5] = {3,0,5,6};
Таким образом, индекс 1 пропускаетсяи автоматически назначаемое значение компилятором!
Вы не можете пропустить элементы в середине, только в конце, как в вашем
int arr[5] = {3,5,6};
, где отсутствующие элементы в конце инициализируются с 0.
Обратите внимание, что то, что вы хотите, возможно в C. Пример из cppreference :
int n[5] = {[4]=5,[0]=1,2,3,4} // holds 1,2,3,4,5
Однако это (пока?) Невозможно в стандартном C ++.
PS : Если вы не заботитесь о переносимости (на самом деле вы должны), вы можете изучить руководство по компилятору, чтобы узнать, позволяет ли оно инициализацию в стиле c также в C ++.