Vecteur modificateurs en C ++ conteneurs Bibliothèque séquences dans C ++ simplifié - Partie 7 Division 2 Introduction Ceci est la partie 7 de ma série, bibliothèque de conteneurs séquences en C ++, simplifié. Dans cette partie de la série, nous examinons les méthodes qui vont modifier un vecteur en C ++. Je suppose que vous avez lu les précédents volets de cette série. Remarque: Si vous ne pouvez pas voir le code ou si vous pensez que quelque chose manquait (lien brisé, l'image absente), contactez-moi au [email protected].
Qui est, me contacter pour le moindre problème que vous avez à propos de ce que vous lisez. push_back void (const T & x); Cette méthode ajoute un nouvel élément à la fin de la liste de vecteur. Elle prend la valeur du nouvel élément comme argument. La valeur pourrait être représenté par son identifiant dans l'argument. Rappelez-vous, dans le paramètre, T est l'espace réservé de type. Il représente un int ou float ou tout autre type d'objet, y compris les objets instanciés. Si la liste de vecteur est vide, la méthode apporte dans le premier élément.
Lire et essayer le code suivant: #include #include using namespace std; main () {int myVtor de vecteur; myVtor.push_back (4,5); myVtor.push_back (3,6); cout cout return 0; } Si une exception est levée par la méthode push_back (), cette méthode n'a aucun effet. Si une exception levée à partir d'un vecteur est pas pris, votre programme peut avorter. Si votre code de vecteur et votre programme dans son ensemble est bien écrit, à peine serait une exception est levée. pop_back void (); Cette méthode prend le dernier élément de la liste de vecteur. Il ne retourne rien.
Vous pouvez savoir si l'élément a été retiré en vérifiant la taille du vecteur. La taille de la liste de vecteur est réduit de 1 (nous verrons comment vérifier la taille plus tard). Le programme suivant, qui affiche rien, montre l'utilisation de la méthode pop_back (). #include #include using namespace std; main () {int myVtor de vecteur; myVtor.push_back (4,5); myVtor.push_back (3,6); myVtor.pop_back (); return 0; } Méthode Insérer Je vais vous donner deux types de la méthode d'insertion.
insert iterator (position iterator, const T & x); A partir des paramètres, cette méthode insère la valeur x dans une liste de vecteur à une position identifiée par un itérateur. Il renvoie un itérateur de la position où la copie a été faite. Donc le paramètre iterator et l'itérateur de retour doivent se référer à la même chose. Après l'insertion d'un élément, la taille de la liste de vecteurs est augmenté d'une unité. Remarque: Un itérateur peut être incrémenté de se référer à l'élément suivant ou décrémentée de se référer à l'élément précédent.
Lire et essayer le code suivant: #include #include using namespace std; int main () {vecteur myVtor
(5); myVtor [0] = 'A'; myVtor [1] 'B'; myVtor [2] = 'C'; myVtor [3] 'D' =; myVtor [4] = 'E'; __gnu_cxx :: __ normal_iterator>> iter1 = myVtor.begin (); ++ iter1; __gnu_cxx :: __ normal_iterator>> iter2 = myVtor.insert (iter1, 'Z'); Cout return 0; } Le secret je l'ai mentionné dans la partie précédente de la série se manifeste ici comme suit: La méthode commencer renvoie un itérateur. La méthode d'insertion utilise cette iterator comme l'un de ses arguments pour insérer un élément.
Comme je l'ai promis, vous ne vraiment besoin de connaître les détails de iterator afin de l'utiliser avec le vecteur. Le dernier mais une seule déclaration ci-dessus confirme que l'élément a été inséré. void insert (iterator position, size_type n, const T & x); Avec cette autre méthode d'insertion, il existe un nouveau paramètre, qui va entre autres paramètres. Ce nouveau paramètre est le nombre d'éléments que vous souhaitez insérer. Le premier paramètre donne la position d'insertion de départ dans la liste de vecteur.
Le dernier paramètre est la seule même objet qui sera inséré consécutivement que de nouveaux éléments. Cette méthode ne retourne rien (void). Lire et essayer le code suivant: #include #include using namespace std; int main () {vecteur myVtor
(2); myVtor [0] = 'A'; myVtor [1] 'B'; __gnu_cxx :: __ normal_iterator>> iter = myVtor.begin (); ++ iter; myVtor.insert (iter, 3, 'Z'); cout cout cout cout cout return 0; } La méthode suivante a deux types. iterator effacement (iterator position); Cette méthode supprime un élément visé par l'argument d'itération.
Elle retourne l'itérateur de la position de l'élément enlevé. Lire et essayer le code suivant: #include #include using namespace std; int main () {vecteur myVtor
(5); myVtor [0] = 'A'; myVtor [1] 'B'; myVtor [2] = 'C'; myVtor [3] 'D' =; myVtor [4] = 'E'; __gnu_cxx :: __ normal_iterator>> iter1 = myVtor.end (); --iter1; --iter1; myVtor.erase (iter1); Cout return 0; } Le programme utilise la méthode de la fin au point juste après le dernier élément. L'itérateur est décrémenté deux fois. L'itérateur résultant est maintenant utilisé pour effacer le quatrième élément.
Le dernier mais une seule déclaration affiche le nouveau quatrième élément, qui était le cinquième élément. Même si une méthode ou une fonction peut retourner une valeur, vous ne devez pas utiliser (céder) la valeur retournée. La valeur de retour de la méthode d'effacement ici n'a pas été utilisé. iterator effacement (iterator premier, iterator dernière); La méthode peut effacer une gamme d'éléments dans la liste. Il prend un itérateur qui se réfère au premier élément de la gamme et un autre itérateur qui fait référence au dernier élément de la gamme.
L'itérateur retourné se réfère à l'élément qui était juste en dessous de la gamme. Le code suivant illustre cela: #include #include using namespace std; int main () {vecteur myVtor
(5); myVtor [0] = 'A'; myVtor [1] 'B'; myVtor [2] = 'C'; myVtor [3] 'D' =; myVtor [4] = 'E'; __gnu_cxx :: __ normal_iterator>> iter1 = myVtor.begin (); ++ iter1; __gnu_cxx :: __ normal_iterator>>