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 initialization
vector<T>::operator []返回类型应该是T&,但为什么它是一个特殊情况vector<bool>?
什么是vector<bool>真正组成的呢?
该项目进一步说:
deque<bool> v; // is a STL container and it really contains bools
这可以用作替代品vector<bool>吗?
有人可以解释一下吗?
泛舟湖上清波郎朗
饮歌长啸
相关分类