SGI

构造

类别: 分配器 组件类型: 函数

原型

template <class T1, class T2> void construct(T1* p, const T2& value);

描述

在 C++ 中,运算符new为对象分配内存,然后通过调用构造函数在该位置创建对象。但是,有时将这两个操作分开很有用。 [1] 如果p是指向已分配但未初始化的内存的指针,那么construct(p, value)在由p指向的位置创建类型为pT1的对象。参数valuep作为参数传递给

T1

的构造函数。构造定义

在标准头文件 memory 和非标准向后兼容头文件 algo.h 中定义。该

T1

p

是一个有效的指针,指向一个内存区域,该区域的大小至少为

double* dp = (double*) malloc(sizeof(double));
construct(dp, 3);
assert(*dp == 3);

sizeof(T1)

构造p

指向的内存未初始化。也就是说,在位置

p, 没有构造任何对象。, 复杂度, 示例, 备注, [1] 特别是,
[Silicon Surf] [STL Home]
construct 以及其他低级内存分配原语用于实现容器类。