Maison >développement back-end >C++ >Quand un vecteur déplacé n'est-il pas vide ?
Un vecteur déplacé depuis est-il toujours vide ?
Question :
C'est connu à partir duquel les objets des types de bibliothèques standard peuvent être déplacés, et bien que les opérations de déplacement puissent laisser les objets déplacés dans un état non spécifié, il n'y a pas d'exigences explicites excluant le vecteur de ceci. Cependant, comment est-il possible que les vecteurs déplacés soient dans un état non vide ?
Réponse :
Généralement, un vecteur déplacé sera vide , mais ce n'est pas toujours le cas.
Cas spécifiques :
Le comportement d'un vecteur déplacé de dépend de l'opération utilisée (constructeur de déplacement ou affectation de déplacement) et de l'allocateur associé au vecteur.
Constructeur de déplacement :
</p> <p>Dans ce cas, le vecteur déplacé depuis sera toujours vide. L'opération de déplacement nécessite une complexité constante, nécessitant le transfert de propriété d'un vecteur à un autre, laissant le premier vide.</p> <p><strong>Affectation de déplacement :</strong></p> <p><pre class="brush:php;toolbar:false">vecteur& opérateur =(vecteur&& v)
Il existe trois scénarios pour considérez :
Il convient de noter que certaines implémentations peuvent choisir d'effacer explicitement le vecteur déplacé dans ce scénario, mais ce n'est pas une exigence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!