Так как только значения с [a] [b] [c] ... [w] [x] [y] [z] имеют значение, мы храним только индекс самостоятельно, а не значение 1, которое составляет примерно везде - всегда одинаково + нет способа хешировать это. Отметив, что проклятие размерности присутствует, предложите пойти с каким-то установленным инструментом NIST или Boost, хотя бы прочитайте источники для этого, чтобы обойти ненужную ошибку.
Если в работе необходимо уловить распределения временной зависимости и параметрические тенденции неизвестных наборов данных, то карта или B-дерево с однозначным корнем, вероятно, не практичны. Мы можем хранить только сами индексы, хэшированные, если порядок (чувствительность для представления) может подчиняться сокращению временной области во время выполнения для всех 1 значений. Поскольку ненулевые значения, отличные от единицы, немногочисленны, очевидным кандидатом для них является любая структура данных, которую вы можете легко найти и понять. Если набор данных действительно огромного размера, я предлагаю какое-то скользящее окно, которое самостоятельно управляет файлом / диском / persistent-io, перемещая части данных в область по мере необходимости. (написание кода, который вы можете понять) Если вы обязуетесь предоставить реальное решение для рабочей группы, то неспособность сделать это оставляет вас во власти операционных систем потребительского уровня, которые преследуют единственную цель отобрать у вас обед.