2012-03-30 180 views
1

std::bitset中元素的数量是否有最大值?std :: bitset中的元素数量是否有最大值?

在我的代码(VC++ 2010)1<<20与堆栈溢出崩溃,但1<<19的作品。

(我处理巨大的投入。)

+0

相关:[在C++中定义一个大的bitset](http://stackoverflow.com/questions/5780112/define-a-large-bitset-in-c) – 2012-03-31 20:02:24

回答

1

据我看到这无关与bitset负载元素的最大数量,但有做可分配的内存量在堆栈上。通常情况下,可以在堆栈上分配的最大内存为1 MB,如果超过此限制,则会导致堆栈溢出。如果你需要超过这个数量的内存,那么我会建议使用new从堆中分配内存,而不是在堆栈上分配内存。在这种情况下,只有当new真正耗尽内存时,内存分配才会失败。

+2

使大对象'static'通常起作用。大多数操作系统可以很好地处理大型可执行二进制映像/全局对象,我不喜欢诉诸堆。 – Potatoswatter 2012-03-30 04:15:01

相关问题