SGI

uninitialized_fill

类别:分配器,算法 组件类型:函数

原型

template <class ForwardIterator, class T>
void uninitialized_fill(ForwardIterator first, ForwardIterator last, 
                        const T& x);

描述

在 C++ 中,运算符new为对象分配内存,然后通过调用构造函数在该位置创建对象。但是,有时将这两个操作分开很有用。 [1] 如果范围内的每个迭代器[first, last)指向未初始化的内存,则uninitialized_fill在该范围内创建x的副本。也就是说,对于范围内的每个迭代器i[first, last), uninitialized_copy在指向x的位置创建i的副本,方法是调用construct(&*i, x).

定义

定义在标准头文件 memory 中,以及非标准向后兼容头文件 algo.h 中。

类型要求

的单个参数

的值类型。

复杂度线性。正好last - first

个构造函数调用。

class Int {
public:
  Int(int x) : val(x) {}
  int get() { return val; }
private:
  int val;
};    

int main()
{
  const int N = 137;
  
  Int val(46);
  Int* A = (Int*) malloc(N * sizeof(Int));
  uninitialized_fill(A, A + N, val);
}

示例

[1] 特别是,这种低级内存管理用于某些容器类的实现。

另请参阅

分配器, construct, destroy, uninitialized_copy, uninitialized_fill_n, raw_storage_iterator
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 商标信息