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

Is there a maximum to the number of elements in std::bitset?

本文关键字:是否 最大值 元素 bitset std      更新时间:2023-10-16

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

在我的代码(VC++2010)中,1<<20因堆栈溢出而崩溃,但1<<19可以工作。

(我正在处理大量输入。)

在我看来,这与bitset中支持的最大元素数量无关,而是与堆栈上可以分配的内存量有关。在VS上,通常可以在堆栈上分配的最大内存是1MB,如果超过这个限制,就会出现堆栈溢出。如果您需要超过这个数量的内存,那么我建议使用new从堆中分配内存,而不是在堆栈上分配。在这种情况下,只有当new真正耗尽内存时,内存分配才会失败。