C ++ emplace_back

C ++ emplace_back
La méthode C ++ STD :: Vector :: EMPlace_back () étend le vecteur en ajoutant un nouvel élément. Si un espace supplémentaire est requis, la réallocation a lieu. Lorsqu'un élément est ajouté ou retiré, les vecteurs ont une capacité similaire aux tableaux dynamiques pour redimensionner automatiquement. Le stockage vectoriel est automatiquement géré par le conteneur. En plus de cela, en utilisant la fonction emplace_back (), on peut ajouter un élément à la fin d'un vecteur, suivant celui qui est déjà là. Cette structure existe déjà. Allons de l'avant avec quelques exemples pour en saisir davantage sur la méthode EMPlace_back ().

Syntaxe de l'emplace_back () en c++

La déclaration de la fonction std :: vector :: emplace_back () de l'en-tête vectorielle std :: est fournie dans ce qui suit:

# vecteur.EMPlace_back (élément);

Le paramètre est l'élément qui est ajouté au vecteur. Les résultats sont le paramètre inséré dans le vecteur au dernier point. Une exception appelée bad_alloc est émise si la réallocation échoue. Si une exception est lancée, rien n'est modifié en raison de la forte garantie d'exception. Pour éviter qu'une erreur soit lancée, le paramètre doit être du même type que le conteneur.

Exemple 1:

L'utilisation de la fonction EMPlace_back () est démontrée dans l'exemple suivant:

#inclure
#inclure
Utilisation de Namespace Std;
int main()

Vectorvec;
vec.EMPlace_back (1);
vec.EMPlace_back (2);
vec.EMPlace_back (3);
vec.EMPlace_back (4);
vec.EMPlace_back (5);
pour (auto it = vec.commencer(); il != VEC.fin(); ++ it)
couter<< " << *it;
retour 0;

Nous avons importé les modules pour l'utilisation des méthodes et des classes du programme. Commencez par l'exemple de fonction principale. Nous avons créé un objet comme «VEC» des vecteurs de classe avec le type de données int. Ensuite, nous avons invoqué la méthode EMPlace_back () avec chaque objet vectoriel et inséré un élément vectoriel comme argument dans la méthode EMPlace_back (). La boucle «pour» est ensuite utilisée pour afficher les composants des vecteurs. Dans la boucle FOR, nous avons un mot-clé automatique avec la variable «it» qui est définie avec la méthode Begin. Nous avons également défini sa variable avec la méthode finale. Cela itère l'élément vectoriel avec l'opérateur d'incrément et renvoie les éléments des vecteurs comme indiqué dans l'écran de sortie suivant:

Exemple 2:

Comme dans l'exemple précédent, nous avons un exemple de vecteur entier qui utilise la fonction emplace_back (). Maintenant, nous avons un exemple de programme de vecteur de chaîne pour démontrer l'utilisation de la fonction EMPlace ().

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
int main()

vectorvector_item;
vector_item.emplace_back ("bonjour");
vector_item.emplace_back ("mon");
vector_item.EMPLACE_BACK ("GEEKS");
vector_item.EMPlace_back ("à");
vector_item.EMPlace_back ("Emplace_back Method");
pour (auto it = vector_item.commencer(); il != vector_item.fin(); ++ it)
couter<< " << *it;
retour 0;

Après avoir défini le namespace std, nous avons créé la méthode principale de ce programme particulier. À l'intérieur, nous avons établi l'objet de classe vectorielle comme «vector_item». Ensuite, nous avons appelé cet objet «vector_item» avec la méthode emplace_back () et inséré les éléments vectoriels comme argument. Nous avons inséré les vecteurs de chaîne dans la méthode EMPlace_back (). Pour afficher ces vecteurs de chaîne sur l'écran de la console, nous avons déployé la méthode de boucle «pour». Vous pouvez voir que toutes les chaînes vectorielles sont générées sous la forme horizontale.

Exemple 3:

L'exemple pour démontrer le vecteur de caractère à l'aide de la fonction EMPlace_back ().

#inclure
#inclure
Utilisation de Namespace Std;
int main()

Vectormyvec;
MyVec.emplace_back ('l');
MyVec.EMPlace_back ('i');
MyVec.EMPlace_back («n»);
MyVec.emplace_back ('u');
MyVec.emplace_back ('x');
pour (auto it = myVec.commencer(); il != MyVec.fin(); ++ it)
couter<< " << *it;
retour 0;

Nous avons créé l'objet vectoriel comme «MyVec». Ensuite, avec l'objet vectoriel «MyVec», nous avons appelé la méthode EMPlace_back (). Nous entrons les différents caractères à chaque fois de la méthode EMPlace_back (). La boucle «pour» est utilisée pour imprimer les valeurs de caractère de la méthode EMPlace_back (). L'écran suivant montre la valeur de caractère renvoyée de la méthode EMPlace_back ().

Exemple 4:

Utilisez la fonction EMPlace_back () pour ajouter les entiers à un vecteur vide, puis déterminer la taille du vecteur résultant. Pour cela, nous avons un algorithme. L'algorithme est que nous devons utiliser la fonction EMPlace_back () pour ajouter les éléments au vecteur. Ensuite, vérifiez si la taille du vecteur est 0. Sinon, éclatez l'élément arrière et augmentez la variable de comptoir qui a été initialement initialisée à 0. Une fois la taille du vecteur réduit à 0, répétez cette procédure. Afficher la valeur finale de la variable.

#inclure
#inclure
Utilisation de Namespace Std;
int main()

int count = 0;
VectorV;
V.EMPlace_back (1);
V.EMPlace_back (2);
V.EMPlace_back (3);
V.EMPlace_back (4);
alors que (!V.vide())
Count ++;
V.pop_back ();

couter<< "count value:" ;
couter<retour 0;

Là, nous avons la méthode principale de ce programme. Nous avons le «nombre» variable qui est initialisé avec la valeur zéro. Ensuite, nous avons un objet «V» du vecteur de classe. Nous avons la méthode EMPlace_back () à travers laquelle nous avons inséré les éléments entiers. Après cela, nous avons une boucle de temps qui imprime la valeur de comptage. L'élément vectoriel ne doit pas être nul pour la boucle while pour être en vigueur. Ensuite, le nombre est incrémenté par la méthode pop_back (). Ce qui suit est un écran qui affiche la valeur de comptage:

Exemple 5:

Le push_back () convertit une chaîne en vecteur. Un nouvel objet String est d'abord généré et initialisé implicitement avec le char fourni *. La chaîne d'origine est un objet temporaire, repousser est ensuite invoqué. Copiez cette chaîne dans le vecteur avec le constructeur de fonction de mouvement. Ensuite, l'élément transitoire est détruit. D'un autre côté, l'EMPlace_back () construit les chaînes en place, aucune chaîne temporaire n'est créée; Au lieu de cela, EMPlace_back () est appelé directement avec un paramètre char *. Ensuite, il génère une chaîne qui est enregistrée dans le vecteur qui a été initialisé avec ce char *. De cette façon, nous évitons de créer et d'éliminer un objet de chaîne temporaire inutile.

#inclure
Utilisation de Namespace Std;
int main()

vecteurmy_vect;
my_vect.EMPlace_back ('x', 12);
my_vect.push_back (make_pair ('y', 15));
pour (int i = 0; icouter<<retour 0;

À l'intérieur de l'int Main, nous avons déclaré que la file d'attente de vecteur prioritaire est déclarée comme l'objet «my_vect». Ensuite, nous avons la méthode EMPlace_back () qui a l'entrée de la paire en place. Après cela, nous avons inséré les valeurs de la paire avec la méthode push_back (). Les valeurs de la paire de l'emplace_back () et du push_back () sont imprimées à l'aide d'une boucle pour une boucle. Les valeurs de paire insérées sont exécutées dans l'invite suivante:

Conclusion

Maintenant, il est très clair pour vous la fonctionnalité de la méthode EMPlace_back () en C++. L'avantage de la folie est qu'il effectue une insertion en place et empêche la nécessité de dupliquer un objet. Lequel nous utilisons n'a pas d'importance pour les types de données primitives. Cependant, l'utilisation de l'EMPlace () est recommandée pour les objets en raison de ses performances. Nous avons couvert tous les exemples de programmes possibles pour expliquer la fonction EMPlace_back (). De plus, nous avons différencié la méthode EMPlace_back () et la méthode push_back () avec l'exemple de programme.