Les tableaux de style C, tels que int holder[10], sont-ils considérés comme un conteneur? La raison pour laquelle je pose la question est que cela aurait du sens logiquement s'ils l'étaient, mais ils n'apparaissent pas sur cette liste de conteneurs

-5
user8626782 25 nov. 2017 à 18:27

3 réponses

Meilleure réponse

Non, ce ne sont pas des conteneurs, car dans la norme ISO C ++, le mot «conteneur» n'est formellement utilisé que pour les classes de conteneurs de la bibliothèque standard. La section entière sur les tableaux, en revanche, n'utilise pas le mot «conteneur». Voir §11.3.4 dans le dernier C + +17 brouillon.

Vous pouvez appeler des tableaux "types composés", "séquences d'objets" ou "agrégats", mais pas "conteneurs".

1
Christian Hackl 25 nov. 2017 à 16:29

Non, selon la description sous le lien que vous avez fourni, ils ne le sont pas. Lisez le lien que vous avez fourni vous-même, les tout premiers mots:

Un conteneur est un objet détenteur qui stocke une collection d'autres objets (ses éléments). Ils sont implémentés comme des modèles de classes, ce qui permet une grande flexibilité dans les types supportés comme éléments.

Le conteneur gère l'espace de stockage de ses éléments et fournit des fonctions membres pour y accéder, soit directement, soit via des itérateurs (objets de référence avec des propriétés similaires aux pointeurs).

Les conteneurs répliquent des structures très couramment utilisées en programmation: tableaux dynamiques (vecteur), files d'attente (file d'attente), piles (pile), tas (priority_queue), listes chaînées (liste), arbres (ensemble), tableaux associatifs (carte) ...

0
Ely 25 nov. 2017 à 15:31

Ce ne sont pas des conteneurs au sens strict.

C ++ std::array qui est un conteneur qui ajoute quelques éléments manquants aux tableaux natifs (comme pouvoir passer et renvoyer des tableaux par valeur).

0
6502 25 nov. 2017 à 15:30
47487569