Scott Meyers的書第18項有效STL:50改進您對標準模板庫的使用的具體方法說要避免,vector <bool>因為它不是STL容器而且它實際上并不存在bool。以下代碼:vector <bool> v; bool *pb =&v[0];不會編譯,違反STL容器的要求。錯誤:cannot convert 'std::vector<bool>::reference* {aka std::_Bit_reference*}' to 'bool*' in initializationvector<T>::operator []返回類型應該是T&,但為什么它是一個特殊情況vector<bool>?什么是vector<bool>真正組成的呢?該項目進一步說:deque<bool> v; // is a STL container and it really contains bools這可以用作替代品vector<bool>嗎?有人可以解釋一下嗎?
為什么vector <bool>不是STL容器?
慕田峪4524236
2019-08-31 15:43:41