Share via


uninitialized_fill

Copia los objetos del valor especificado en un rango de destino sin inicializar.

template<class ForwardIterator, class Type>
   void uninitialized_fill(
      ForwardIterator _First, 
      ForwardIterator _Last,
      const Type& _Val
   );

Parámetros

  • _First
    Un iterador hacia delante que dirige el primer elemento del intervalo de destino que se debe iniciar.

  • _Last
    Un iterador hacia delante que dirige el último elemento del intervalo de destino que se debe iniciar.

  • _Val
    El valor que se utilizará para inicializar el intervalo de destino.

Comentarios

Este algoritmo permite se desacoplan de asignación de memoria de la construcción de objetos.

La función de la plantilla se ejecuta eficazmente:

while ( _First!= _Last )
   new ( (void *)&*_First ++)
      iterator_traits<ForwardIterator>::value_type ( _Val );

a menos que el código produce una excepción.En ese caso, se destruyen todos los objetos construidos y la excepción se reinician.

Ejemplo

// memory_uninit_fill.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>

using namespace std;

   class Integer {         // No default constructor
   public:
      Integer( int x ) : val( x ) {}
      int get( ) { return val; }
   private:
      int val;
   };

int main( )
{
   const int N = 10;
   Integer val ( 25 );
   Integer* Array = ( Integer* ) malloc( N * sizeof( int ) );
   uninitialized_fill( Array, Array + N, val );
   int i;
   cout << "The initialized Array contains: ";
      for ( i = 0 ; i < N; i++ )
      {
         cout << Array [ i ].get( ) << " ";
      }
   cout << endl;
}
  

Requisitos

encabezado: <memoria>

espacio de nombres: std