Vous avez beaucoup plus de contrôle avec des tableaux
Que diriez-vous:
1) vous traitez avec des ensembles de données colossales où les données doivent être des fichiers mis en correspondance et non attribué malloc
ou new
en raison de sa taille . Dans ce scénario, s'inquiéter de ce qu'il faut faire si vous n'avez pas réservé assez d'espace d'adressage au début peut être discutable, mais je suppose que vous pouvez démapper - étendre - remapper le fichier, sauf si la fragmentation d'adresse ou mon second point l'interdit.
2) Code qui utilise un multiprocesseur sans verrouillage. Les hits de performance d'arrêt des threads pour ré-allocation (ou tout autre "goodie STL") peuvent être inacceptables, donc utiliser des tableaux, vous avez beaucoup plus de contrôle, vous devrez peut-être appeler beaucoup de fonctions pour mettre en pause d'autres threads avant de redimensionner n'importe quoi.
BTW, je suis habituellement avec 1 et 2 en même temps. Les tableaux de structures + pointeurs fonctionnent à merveille, Compiler avec C++ car vous pouvez toujours utiliser des fonctionnalités C++ ailleurs dans le code.Je suis sûr que je pourrais penser à beaucoup d'autres exemples si j'ai essayé assez fort
Aussi: * les tableaux sont plus rapides; * les tableaux peuvent être initialisés statiquement (alors que les vecteurs sont toujours initialisés dynamiquement, au moment de l'exécution) – mojuba
Hélas la raison pour laquelle "tant de développeurs choisissent des tableaux sur std :: vector en C++" vient du fait qu'ils lisent des vieux/mauvais livres et maintenant hésitent à passer à un nouveau niveau de programmation. Je doute que beaucoup considèrent même l'un de vos points avant de décider d'utiliser des tableaux. Aussi n'importe quel vecteur fournit, n'importe quel programmeur doit théoriquement pouvoir utiliser des tableaux, parce que si vous ne comprenez pas les pointeurs et leur arithmétique vous ne pouvez pas être un bon programmeur C++ –