Я хотел бы реализовать класс BigInt, который сможет обрабатывать действительно большие числа. Я хочу только складывать и умножать числа, однако класс также должен обрабатывать отрицательные числа.
Я хотел представить число в виде строки, но при преобразовании строки в int и обратно для сложения возникают большие накладные расходы. Я хочу реализовать дополнение, как в старшей школе, добавить соответствующий заказ, и если результат больше 10, добавить перенос в следующий заказ.
Тогда я подумал, что было бы лучше обрабатывать его как массив unsigned long long int и сохранять знак, разделенный bool. При этом я боюсь размера int, поскольку стандарт С++, насколько мне известно, гарантирует только то, что int < float < double. Поправьте меня если я ошибаюсь. Поэтому, когда я достигаю некоторого числа, я должен двигаться в массиве вперед и начинать добавлять число в следующую позицию массива.
Есть ли какая-либо структура данных, подходящая или лучше для этого?