(うまくいけば)私たち全員が知っているように、vector<bool>
完全に壊れており、C配列として扱うことはできません。この機能を取得する最良の方法は何ですか?これまでのところ、私が考えているアイデアは次のとおりです。
- 使用する
vector<char>
代わりに、または - ラッパークラスを使用し、
vector<bool_wrapper>
どうやってこの問題を処理しますか?c_array()
機能が必要です。
余談ですが、このc_array()
方法が必要ない場合、ランダムアクセスが必要な場合にこの問題に取り組む最善の方法は何ですか?両端キューなどを使用する必要がありますか?
編集:
- 動的なサイズ設定が必要です。
- 知らない人の
vector<bool>
ために、それぞれbool
が1ビットを取るように専門化されています。したがって、それをCスタイルの配列に変換することはできません。 - 「ラッパー」はちょっと誤称だと思います。私はこのようなことを考えていました:
もちろん、my_bool
アライメントの問題が発生する可能性があるため、次に読む必要があります:(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;