Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

uninitialized_fill_n

Copie des objets d'une valeur spécifiée dans le nombre spécifié d'éléments dans une plage non initialisé de destination.

template<class FwdIt, class Size, class Type>
   void uninitialized_fill_n(
      ForwardIterator _First, 
      Size _Count,
      const Type& _Val
   );

_First

Un itérateur vers l'avant adressant le premier élément de la plage de destination à initialiser.

_Count

Nombre d'éléments à initialiser.

_Val

La valeur à utiliser pour initialiser la plage de destination.

Cet algorithme permet le découplage de l'allocation de mémoire de la construction d'objet.

La fonction de modèle exécute efficacement :

while ( 0 < count-- )
   new ( ( void * )&*_First ++ )
      iterator_traits<ForwardIterator>::value_type( _Val );

à moins que le code lève une exception. Dans ce cas, tous les objets construits sont détruits et l'exception est à nouveau levée.

uninitialized_fill_n a deux formes associées :

Pour plus d'informations sur ces fonctions se comportent, consultez Itérateurs vérifiés.

// 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( ) <<  " ";
}

The uninitialized Array contains: 60 60 60 60 60 60 60 60 60 60 

en-tête : <memory>

l'espace de noms: std

Ajouts de la communauté

AJOUTER
Afficher: