※携帯からの投稿です
メモリを節約したい!
たくさんのbool型を扱おうとする時、bool型を構造体で大量に持ったりしてbool型1個1個が独立しているとbool型1個あたり1バイト消費してしまい、
1000個とか2000個のbool型を扱おうとすると、メモリが潤沢なPCではあまり問題になりませんが、Android(DXライブラリなど、C++でコーディングできるライブラリがあります)などメモリ容量が厳しい環境だと、問題になることがあります。
bitset? vector<bool>?
bitsetか、vector<bool>を使うと、1ビット単位でbool型を扱うことができ、メモリを節約できます。
しかし、vector<bool>は特殊化されたvectorであって、vectorのようでvectorではなく、使わない方がいいという話があります。
一方、bitsetはコンパイル時点で要素数が確定していなければならず、実際に使う量が可変の場合、使わない部分が無駄になってしまいます。
どちらを使う……?
大量にbool型を扱いたく、bool型の数も可変にしたいが、メモリを節約したい(しなければならない)……と思った時、bitsetかvector<bool>、どちらを使うべきなのでしょうか?
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/28 12:18
2018/11/28 13:14