Quelles sont les différences entre un tableau et un vecteur en C ++? Un exemple des différences pourrait être inclus les bibliothèques, le symbolisme, les capacités, etc.
Tableau
Les tableaux contiennent un nombre spécifique d'éléments d'un type particulier. Pour que le compilateur puisse réserver la quantité d'espace requise lorsque le programme est compilé, vous devez spécifier le type et le nombre d'éléments que le tableau contiendra lors de sa définition. Le compilateur doit être en mesure de déterminer cette valeur lorsque le programme est compilé. Une fois qu'un tableau a été défini, vous utilisez l'identificateur du tableau avec un index pour accéder à des éléments spécifiques du tableau. [...] les tableaux sont indexés à zéro; autrement dit, le premier élément est à l'index 0. Ce schéma d'indexation est indicatif de la relation étroite en C ++ entre les pointeurs et les tableaux et les règles que le langage définit pour l'arithmétique des pointeurs.
- Référence de poche C ++
Vecteur
Un vecteur est une séquence d'objets de taille dynamique qui fournit
operator[]
un accès aléatoire de style tableau . La fonction membrepush_back
copie ses arguments via le constructeur de copie, ajoute cette copie comme dernier élément du vecteur et incrémente sa taille de un.pop_back
fait exactement le contraire, en supprimant le dernier élément. L'insertion ou la suppression d'éléments à partir de la fin d'un vecteur prend un temps constant amorti, et l'insertion ou la suppression de tout autre emplacement prend un temps linéaire. Ce sont les bases des vecteurs. Il y a beaucoup plus à eux. Dans la plupart des cas, un vecteur devrait être votre premier choix sur un tableau de style C. Tout d'abord, ils sont dimensionnés de manière dynamique, ce qui signifie qu'ils peuvent grandir selon les besoins. Vous n'avez pas à faire toutes sortes de recherches pour trouver une taille statique optimale, comme dans le cas des tableaux C; un vecteur s'agrandit selon les besoins et il peut être redimensionné plus ou moins manuellement si vous en avez besoin. Deuxièmement, les vecteurs offrent une vérification des limites avec laat
fonction membre (mais pas avecoperator[]
), de sorte que vous puissiez faire quelque chose si vous référencez un index inexistant au lieu de simplement regarder votre programme planter ou pire, continuer l'exécution avec des données corrompues.- Livre de recettes C ++