Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

uninitialized_fill

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

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

_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.

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.

// 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;
}
La matriz inicializado contiene: 25 25 25 25 25 25 25 25 25 25 

Encabezado: <memory>

Espacio de nombres: std

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft