В моей программе мне нужно проверить, не сгенерировал ли я уже значение из набора 2,5 * 10 ^ 9. Я ожидаю сгенерировать примерно половину набора, и мне нужен быстрый способ его проверки и обновления. Битовый набор показался мне хорошей идеей, поскольку он требует не слишком много памяти (1 бит на значение) и работает быстро.
Проблема в том, что когда я определяю свой набор в своем классе, я получаю segmentation fault
, так как размер слишком велик (работает с меньшими размерами).
private:
std::bitset<2500000000UL> cover; // not working
std::bitset<25000UL> cover; // working
Есть идеи?
Спасибо
PS: Я бы предпочел не использовать внешнюю библиотеку, если это возможно. Я уже использую GMP , но не думаю, что у них есть реализация с набором битов для больших чисел.