uninitialized_fill
Copia gli oggetti di un valore specificato in un intervallo di destinazione non inizializzato.
template<class ForwardIterator, class Type>
void uninitialized_fill(
ForwardIterator _First,
ForwardIterator _Last,
const Type& _Val
);
Parametri
_First
Un iteratore avanti destinato al primo elemento nell'intervallo di destinazione che deve essere avviato._Last
Un iteratore avanti destinato all'ultimo elemento nell'intervallo di destinazione che deve essere avviato._Val
Il valore da utilizzare per inizializzare l'intervallo di destinazione.
Note
Questo algoritmo consente la separazione di allocazione della memoria dalla costruzione di un oggetto.
La funzione di modello esegue effettivamente:
while ( _First!= _Last )
new ( (void *)&*_First ++)
iterator_traits<ForwardIterator>::value_type ( _Val );
a meno che il codice genera un'eccezione. In tal caso, tutti gli oggetti creati vengono eliminate e l'eccezione viene generata di nuovo.
Esempio
// 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;
}
Requisiti
Header: <memory>
Spazio dei nomi: std