2012-03-30 181 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

相關問題