23.2 中的 C++ 标准草案 n3242 在包含容器要求的表中指出,包含 X::reference 的容器的 T 必须是 lvalue T 。然而,对于 vector<bool>vector<bool>::reference 是另一个类,用于访问存储在 vector 中的单个字节位的代理。

这是否意味着标准中定义的 std::vectorT = bool 类模板规范无法满足容器要求?

最佳答案



是的。

类似地,它的迭代器并不是真正的随机访问迭代器,因为 operator* 产生了一个代理对象。
vector<bool> 一团糟。

关于c++ - vector<bool> 是否违反容器要求?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12678236/

10-11 22:56
查看更多