std::bitset
中的元素数量是否最大?
在我的代码中(VC ++ 2010)1<<20
因堆栈溢出而崩溃,但1<<19
有效。
(我正在处理巨大的投入。)
答案 0 :(得分:1)
据我所知,这与bitset
中支持的最大元素数无关,但与可以在堆栈上分配的内存量有关。在VS上通常,可以在堆栈上分配的最大内存为1 MB,如果超过此限制,则会出现堆栈溢出。如果你需要的内存超过这个数量,那么我建议使用new
从堆中分配内存,而不是在堆栈上分配。在这种情况下,只有当new
真正耗尽内存时,内存分配才会失败。