Pourquoi n’y a-t-il pas de méthode en C++
?
Réponses
Trop de publicités?Parce qu’a `` n’a pas de caractéristique particulière en ce qui concerne l’insertion d’éléments à l’avant, contrairement à d’autres conteneurs. La fonctionnalité fournie par chaque conteneur a du sens pour ce conteneur.
Vous devriez probablement utiliser un `` , qui est explicitement bon pour insérer à l’avant et à l’arrière.
Consultez ce diagramme.
Bien qu’inefficace sur les grands vecteurs, ce qui suit est équivalent à un pour un
Comme indiqué dans d’autres réponses, `` n’est pas conçu pour supprimer le premier élément et nécessitera de déplacer / copier tous les éléments restants. Selon le cas d’utilisation spécifique, il peut être pratique d’envisager d’autres conteneurs.
Parce que et
sont des opérations spéciales pour un vecteur qui ne nécessitent que du calcul. Toute autre poussée ou pop prend
.
Ce n’est pas un « bug » ou une « bizarrerie », c’est juste une propriété du conteneur vectoriel. Si vous avez besoin d’un pop_front envisager de passer à un autre conteneur.
Cependant, si vous avez besoin d’un pop_front et que vous ne vous souciez PAS de l’index des éléments dans le vecteur, vous pouvez faire une sorte de pop_front avec quelque chose comme
Dan Higgins en parle aussi : https://youtu.be/oBbGC-sUYVA?t=2m52s