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 angegebene Anzahl an Elementen in einen nicht initialisierten Zielbereich.
template<class FwdIt, class Size, class Type>
void uninitialized_fill_n(
ForwardIterator _First,
Size _Count,
const Type& _Val
);
Parameter
_First
Ein Vorwärtsiterator, der das erste Element im initiiert werden Zielbereich behandelt._Count
Die Anzahl der zu initialisierenden Elemente._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 ( 0 < count-- )
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.
uninitialized_fill_n hat zwei verknüpfte Formulare:
Informationen darüber, wie diese Funktionen verhalten, finden Sie unter Überprüfte Iteratoren.
Beispiel
// memory_uninit_fill_n.cpp
// compile with: /EHsc /W3
#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 ( 60 );
Integer* Array = ( Integer* ) malloc( N * sizeof( int ) );
uninitialized_fill_n( Array, N, val ); // C4996
int i;
cout << "The uninitialized Array contains: ";
for ( i = 0 ; i < N; i++ )
cout << Array [ i ].get( ) << " ";
}
Output
The uninitialized Array contains: 60 60 60 60 60 60 60 60 60 60
Anforderungen
Header: <memory>
Namespace: std