При работе с проблемами Project Euler мне часто нужны большие (> 10 ** 7) битовые массивы.
Мой обычный подход - один из:
bool* sieve = new bool[N];
bool sieve[N];
Когда N = 1 000 000 в моей программе используется 1 мегабайт (8 * 1 000 000 бит).
Есть ли более эффективный способ использования массивов хранимых битов, чем bool в C ++?