访问data()[n]if 是无效的n >= size().每[vector.data] std::vector::data
返回:指针,这
[data(), data() + size())是一个有效的范围.对于非空向量,data() == addressof(front()).
因此,只有data在范围内的值访问才有效[0, size()).
一般来说那么之间的内存data() + size() - 1和data + capacity()未初始化.如果您从未初始化的内存中读取未定义的行为.如果你有一个具有非平凡初始化的对象,那么你甚至不能为它赋值,因为实际上在该点中没有对象,只有一个空间.你可能会在未初始化范围内做事,但你违反了合同,std::vector如果你这样做可能会生气;)
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |