Scott Meyers の著書「Effective STL: 50 Specific Ways to Improvement Your Use of the Standard Template Libraryvector <bool> 」の項目 18 は、STL コンテナーではなく、実際には s を保持しないため、避けるように述べていboolます。
次のコード:
vector <bool> v;
bool *pb =&v[0];
コンパイルされず、STL コンテナーの要件に違反します。
エラー:
cannot convert 'std::vector<bool>::reference* {aka std::_Bit_reference*}' to 'bool*' in initialization
vector<T>::operator []戻り値の型は であるはずですT&が、なぜ特殊なケースなのvector<bool>ですか?
実際には何がvector<bool>構成されていますか?
この項目はさらに次のように述べています。
deque<bool> v; // is a STL container and it really contains bools
これは の代替として使用できますvector<bool>か?
誰でもこれを説明できますか?