Revenons simplement à l’utilisation de C++ et à l’essai de conversion d’un simple Java que j’ai écrit récemment.
Quel est l'équivalent préféré de Java ArrayList en C++?)
Utilisez le std::vector
class de la bibliothèque standard.
Quelques points supplémentaires concernant l’utilisation de vector
ici.
Contrairement à ArrayList
et Array
en Java, vous n'avez rien à faire de particulier pour traiter un vector
comme un tableau - le stockage sous-jacent en C++ est garanti comme étant contigu et indexable efficacement.
Contrairement à ArrayList
, un vector
peut efficacement contenir des types primitifs sans encapsulation en tant qu'objet à part entière.
Lors de la suppression d'éléments d'un vector
, sachez que les éléments situés au-dessus de l'élément supprimé doivent être abaissés pour préserver le stockage contigu. Cela peut coûter cher pour les gros conteneurs.
Assurez-vous que si vous stockez des objets complexes dans vector
que leur constructeur de copie et leurs opérateurs d’affectation sont efficaces. Sous les couvertures, C++ STL les utilise lors de l’entretien des conteneurs.
Des conseils sur la reserve()
ing initialisation du stockage (c'est-à-dire lors de la construction du vecteur ou du temps d'initialisation) afin de minimiser la réallocation de la mémoire sur les extensions ultérieures sont transférés de Java en C++.