Битовый массив в C ++

При работе с проблемами Project Euler мне часто нужны большие (> 10 ** 7) битовые массивы.

Мой обычный подход - один из:

bool* sieve = new bool[N];

bool sieve[N];

Когда N = 1 000 000 в моей программе используется 1 мегабайт (8 * 1 000 000 бит).

Есть ли более эффективный способ использования массивов хранимых битов, чем bool в C ++?

20
задан Seth 27 September 2010 в 18:07
поделиться