vector::保留类型和内置类型

vector::reserve and built-in types

本文关键字:内置 置类型 类型 保留 vector      更新时间:2023-10-16

请不要在没有完整阅读的情况下将其标记为重复。这不是一个"std::reserve做什么"的问题

写入具有内置类型的向量::reserved'd地址是错误的吗?

vector<int> vec;
vec.reserve(10);
vec[5] = 24; // Is this an error?

我知道对象没有初始化,但由于它们只是整数,并且空间是通过保留分配的,并且这是在连续存储中完成的,所以这是一个错误吗?

根据标准,这是一个错误,因为它是未定义的行为。这可能不会导致任何可观察到的问题,但它仍然是一个错误。有些实现会在调试模式下进行边界检查并抛出异常。他们可以做到这一点,而且这样做完全符合标准,因为您调用了未定义的行为。

是的,这是一个错误。

这也是CCD_ 1和CCD_。正如你们所说的,它必须和向量元素统一起来。

请参阅SO上的这个优秀螺纹,了解两者之间的区别。