Лучшая структура данных для последовательности цифр [0: 9] - PullRequest
0 голосов
/ 07 мая 2018

Какой самый лучший тип данных, который может обрабатывать последовательность цифр [0: 9] в c ++ с наименьшим возможным расходом памяти?

Я думаю, что-то в этом роде

typedef bitset<4> Digit;
vector<Digit> myVector;

но я думаю, что каждый bitset<4> резервирует байт - то же самое, что и символ, так что он не лучше обычной строки, не так ли?

Есть ли лучшая идея, чтобы справиться с чем-то подобным?

1 Ответ

0 голосов
/ 07 мая 2018

Для сохранения значения из набора 10 требуется 4 бита.

Но для 4 битов могут быть представлены 16 значений. Это растрата 6/16 = 37,5%.

Таким образом, лучшее представление минимизирует количество отходов.

Лучший способ - хранить в двоичном виде, где используются все комбинации битов.

...