我仅在访问 bool vector 中的元素地址时才得到警告。
对于其他数据类型的 vector ,例如int,我没有收到任何警告。
例如
vector<bool> boolVect;
boolVect.push_back(false);
if (boolVect.size() > 0) {
cout << &boolVect[0] << endl;
}
我在语句“cout <
有人可以澄清一下吗?
最佳答案
std::vector<bool>
损坏(请参阅http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=98或Alternative to vector<bool>)。这是std::vector<T>
的特殊化,但是各个元素都存储为打包位。因此,您不能使用单个元素的地址。因此,这确实很烦人。