Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kopiert Objekte eines angegebenen Werts in einen nicht initialisierten Zielbereich.
template<class ForwardIterator, class Type>
void uninitialized_fill(
ForwardIterator _First,
ForwardIterator _Last,
const Type& _Val
);
Parameter
_First
Ein Vorwärtsiterator, der das erste Element im Zielbereich abweicht, der initiiert werden soll._Last
Ein Vorwärtsiterator, der das letzte Element im Zielbereich abweicht, der initiiert werden soll._Val
Der, um den Zielbereich zu initialisieren Werten verwendet werden.
Hinweise
Dieser Algorithmus ermöglicht die Entkopplung der Speicherbelegung von der Objekterstellung.
Die Vorlagenfunktion führt für aus:
while ( _First!= _Last )
new ( (void *)&*_First ++)
iterator_traits<ForwardIterator>::value_type ( _Val );
es sei denn, der Code eine Ausnahme auslöst.In diesem Fall werden alle erstellten Objekte zerstört und die Ausnahme wird erneut ausgelöst.
Beispiel
// 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;
}
Anforderungen
Header: <memory>
Namespace: std