Warum ist der Vektor <bool> kein AWL-Container?

Punkt 18 von Scott Meyers 'BuchEffektive STL: 50 spezifische Möglichkeiten zur Verbesserung der Verwendung der Standardvorlagenbibliothek sagt zu vermeidenvector <bool> da es kein STL-Container ist und keine wirklichen Bools enthält.

Der folgende Code:

vector <bool> v; 
bool *pb =&v[0];

wird nicht kompiliert, was gegen die Anforderungen von STL-Containern verstößt.

Error:

cannot convert 'std::vector<bool>::reference* {aka std::_Bit_reference*}' to 'bool*' in initialization

vector<T>::operator [] Der Rückgabetyp sollte T & sein, aber warum ist er ein Sonderfall fürvector<bool>?

Was machtvector<bool> wirklich bestehen aus?

Der Artikel sagt weiter:

deque<bool> v; // is a STL container and it really contains bools

Kann dies als Alternative zuvector<bool>?

Kann jemand das bitte erklären?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage