| 类别: 分配器 | 组件类型: 函数 |
template <class T> void destroy(T* pointer); template <class ForwardIterator> void destroy(ForwardIterator first, ForwardIterator last);
第一个版本的销毁销毁指向指针的对象,方法是调用析构函数T::~T(). 指向指针的内存不会被释放,可以被其他对象复用。
第二个版本的销毁销毁元素范围内的所有对象[first, last). 等同于调用destroy(&*i),针对范围内的每个迭代器i。[first, last).
class Int {
public:
Int(int x) : val(x) {}
int get() { return val; }
private:
int val;
};
int main()
{
Int A[] = { Int(1), Int(2), Int(3), Int(4) };
destroy(A, A + 4);
construct(A, Int(10));
construct(A + 1, Int(11));
construct(A + 2, Int(12));
construct(A + 3, Int(13));
}
[1] 特别是,销毁,以及其他低级内存分配原语,用于实现容器类。