Не всем индексам присвоено значение
Действительно, некоторые из них при некоторых условиях, если они не инициализированы или не назначены, могут иметь "неопределенное значение" (и программа, считывающая указанное значение, будет иметь неопределенное поведение).
Итак, мы можем сказать, что этим элементам «не было присвоено значение».Но я не собираюсь этого делать по двум причинам:
- Вы не можете обнаружить это, и
- это не означает, что элементы не существуют.
Это не совсем то же самое, что "не было назначено значение", о котором вы думаете.Итак, я предлагаю вам думать об этом так: все элементы массива существуют, всегда .Вы можете либо использовать какой-либо другой контейнер, в который вы добавляете элементы по требованию, либо выбрать свой собственный способ указать, является ли значение в настоящий момент «действительным» для вашего алгоритма или нет.
Если вы хотитесписок x → y отображений, где x не является смежным, возможно, вам следует рассмотреть вместо std::map
(хотя это имеет свои собственные проблемы, а именно то, что оно можетбудь медленнее).Или вы можете использовать какое-то значение часового типа, например -1
, если они никогда не будут считаться «реальными» значениями.