1 Les objets de type vector
2 Listes chaînées
3 Autres structures de données
On dispose d'une classe-collection qui est décrite dans la norme : vector. Pour pouvoir utiliser cette classe :
#include <vector>
int i=7 vector<int> listeEntier; liste.push_back(i); std::cout << liste.at(i);Dans ce cas, i est ajouté à la fin de la collection d'objet.
vector<string> listeChainee; string str("Les sanglots longs des violons"); listeChainee.push_back(str);
vector<vector<int> > temp;
for(int i=0;i
2 Les listes chaînées
Les listes chainées sont des structures de données où l'enregistrement de la liste se fait avec chaque élément qui pointe sur le suivant.
Par exemple, sur l'exemple, on enregistre une liste chainée d'objet de type Action. Chaque Action est définie par des champs propres et en plus par un pointeur sur Action qui référence l'objet suivant de la liste. L'ensemble de la liste est conservé par un pointeur Action * sur le premier élémnet de la liste. Il est ensuite possible de parcourir la liste en passant d'élément en élément. Pour modifier la liste et ajouter une Action a après une Action a2 qui pointe sur une Action a3, on fait pointer a2 sur a et on fait pointer a sur a3.
Pour supprimer un élement Action a2 de la liste, en supposant qu'il est compris entre un élément a1 et un élément a3 : on supprime a2 et on fait pointer a1 sur a3.
Un exemple de listeChainee sur des objets Action est proposé : fichierSource. Sur le cas proposé, non seulement on implémente une liste chainée, mais on conserve également le classement des Action par numéro.
3 Les autres structures de données
On peut imaginer tout type de structure : des piles LIFO / des files LILO. En fonction des cas, il sera possible de construire des structures de données ad-hoc.