2012-03-30 2 views
1

Есть ли максимальное число элементов в std::bitset?Максимальное количество элементов в std :: bitset?

В моем коде (VC++ 2010) 1<<20 сбой при переполнении стека, но 1<<19 работает.

(я имею дело с огромными входами.)

+0

Связанный: [Определить большой битбит в C++] (http://stackoverflow.com/questions/5780112/define-a-large-bitset-in-c) –

ответ

1

Насколько я вижу, что это не имеет ничего общего с максимальным числом элементов, поддерживаемых в bitset, но имеет отношение к количеству памяти, которая может быть выделена на стеке. В VS обычно максимальная память, которая может быть выделена в стеке, равна 1 МБ, и если вы перейдете этот предел, вы получите переполнение стека. Если вам требуется больше, чем этот объем памяти, я бы предложил выделить память из кучи, используя new, а не выделять на стек. В этом случае распределение памяти будет происходить только тогда, когда new действительно исчерпает память.

+2

Создание большого объекта 'static' обычно работает. Большинство операционных систем прекрасно справляются с большими исполняемыми двоичными изображениями/глобальными объектами, и я предпочитаю не прибегать к куче. – Potatoswatter

Смежные вопросы