vector::保留类型和内置类型
vector::reserve and built-in types
请不要在没有完整阅读的情况下将其标记为重复。这不是一个"std::reserve做什么"的问题
写入具有内置类型的向量::reserved'd地址是错误的吗?
vector<int> vec;
vec.reserve(10);
vec[5] = 24; // Is this an error?
我知道对象没有初始化,但由于它们只是整数,并且空间是通过保留分配的,并且这是在连续存储中完成的,所以这是一个错误吗?
根据标准,这是一个错误,因为它是未定义的行为。这可能不会导致任何可观察到的问题,但它仍然是一个错误。有些实现会在调试模式下进行边界检查并抛出异常。他们可以做到这一点,而且这样做完全符合标准,因为您调用了未定义的行为。
这也是CCD_ 1和CCD_。正如你们所说的,它必须和向量元素统一起来。
请参阅SO上的这个优秀螺纹,了解两者之间的区别。
相关文章:
- 是否有内置方法可以强制转换为不同的基础类型,但保留常量限定符?
- 何时包含内置类型和运算符的标头?
- 基本类型与内置类型有什么区别C++
- 指内置类型的文字
- 如何在编译器时动态获取元组内的变量类型C++?
- 使用 SFINAE 和 void_t 来确定容器内的元素类型
- 更改if范围内变量的类型
- 在C 中重新解析命名空间内的全局类型
- Q : std::同一数组内具有不同类型的函数
- 如何使用内置返回类型重载运算符?
- const_cast是否返回在角括号内指定的类型
- C和c++中内置数据类型的类型是什么?
- 内置数据类型转换为用户定义的数据类型c++
- 将内置数据类型转换为std::string: memcpy vs snprintf
- 函数模板内的解除类型和范围解析操作符
- 内置数据类型与C++中用户定义的数据类型
- 如何用内部类的类型初始化模板类中的静态字段
- int(内置数据类型)是c++中的一个类吗
- 是否有可能像处理内置数据类型那样处理class_inst = some_func(class_inst) ?
- 内联stl类型列表管理器