std::bitset
には最大要素数がありますか?std :: bitsetには最大要素数がありますか?
私のコード(VC++ 2010)では、1<<20
はスタックオーバーフローでクラッシュしますが、1<<19
が機能します。私の知る限り、これはbitset
でサポートされている要素の最大数とは何の関係もありませんが、割り当て可能なメモリの量に関係している参照として
(私は巨大な入力を扱っています。)
std::bitset
には最大要素数がありますか?std :: bitsetには最大要素数がありますか?
私のコード(VC++ 2010)では、1<<20
はスタックオーバーフローでクラッシュしますが、1<<19
が機能します。私の知る限り、これはbitset
でサポートされている要素の最大数とは何の関係もありませんが、割り当て可能なメモリの量に関係している参照として
(私は巨大な入力を扱っています。)
スタックに。 VSでは通常、スタックに割り当てることができる最大メモリは1 MBであり、この制限を超えるとスタックオーバーフローが発生します。この量以上のメモリが必要な場合は、スタックに割り当てるのではなく、new
を使用してヒープからメモリを割り当てることをお勧めします。このような場合、メモリ割り当ては、new
が本当にメモリ不足の場合にのみ失敗します。
大きなオブジェクトを静的にすることは、通常動作します。ほとんどのオペレーティングシステムは、大きな実行可能なバイナリイメージ/グローバルオブジェクトをうまく扱うことができ、ヒープに頼らないことを好みます。 – Potatoswatter
関連[C++で大きなビットセットを定義](http://stackoverflow.com/questions/5780112/define-a-large-bitset-in-c) –