std::bitset
中元素的数量是否有最大值?std :: bitset中的元素数量是否有最大值?
在我的代码(VC++ 2010)1<<20
与堆栈溢出崩溃,但1<<19
的作品。
(我处理巨大的投入。)
std::bitset
中元素的数量是否有最大值?std :: bitset中的元素数量是否有最大值?
在我的代码(VC++ 2010)1<<20
与堆栈溢出崩溃,但1<<19
的作品。
(我处理巨大的投入。)
据我看到这无关与bitset
负载元素的最大数量,但有做可分配的内存量在堆栈上。通常情况下,可以在堆栈上分配的最大内存为1 MB,如果超过此限制,则会导致堆栈溢出。如果你需要超过这个数量的内存,那么我会建议使用new
从堆中分配内存,而不是在堆栈上分配内存。在这种情况下,只有当new
真正耗尽内存时,内存分配才会失败。
使大对象'static'通常起作用。大多数操作系统可以很好地处理大型可执行二进制映像/全局对象,我不喜欢诉诸堆。 – Potatoswatter 2012-03-30 04:15:01
相关:[在C++中定义一个大的bitset](http://stackoverflow.com/questions/5780112/define-a-large-bitset-in-c) – 2012-03-31 20:02:24