ブール値の効率的な使用についてコメントできるコンパイラの専門家はいますか? 具体的には、コンパイラはstd::vector<boolean>
最小限のメモリを使用するように最適化できますか? 同等のデータ構造はありますか?
昔は、ブール値の配列を圧縮して、ブール値ごとにわずか 1 ビットの表現にできるコンパイラを備えた言語がありました。おそらく、C++ で実行できる最善の方法は、std::vector<char>
メモリ使用量を最小限に抑えるためにブール値を格納するために使用することでしょうか?
ここでの使用例は、数億のブール値を保存することです。1 バイトは、値ごとに 4 バイト以上、1 ビット以上の多くのスペースを節約します。